The normal way to compile Coq documents with Alectryon is to use serapi. When this is not possible, however, you can use coqc with (much) reduced functionality: Alectryon will be able to parse individual sentences and refer to them, but not to compute goals and messages. To compile with coqc, pass --coq-driver={sertop|sertop_noexec|coqc_time} to Alectryon:
alectryon --coq-driver=sertop coq_drivers.v -o coq_drivers.html # Coq+reST → HTML; produces ‘coq_drivers.html’ alectryon --coq-driver=coqc_time coq_drivers.v -o coq_drivers.coqc.html # Coq+reST → HTML; produces ‘coq_drivers.coqc.html’ alectryon --coq-driver=sertop_noexec coq_drivers.v -o coq_drivers.noexec.html # Coq+reST → HTML; produces ‘coq_drivers.noexec.html’
forall (A B : Type) (f : A -> B -> A) (l l' : list B) (a : A), fold_left f (l ++ l') a = fold_left f l' (fold_left f l a)induction l; simpl; auto. Qed.forall (A B : Type) (f : A -> B -> A) (l l' : list B) (a : A), fold_left f (l ++ l') a = fold_left f l' (fold_left f l a)forall (A B : Type) (f : A -> B -> B) (l : list A) (b : B), fold_right f b l = fold_left (fun (acc : B) (b0 : A) => f b0 acc) (rev l) bforall (A B : Type) (f : A -> B -> B) (l : list A) (b : B), fold_right f b l = fold_left (fun (acc : B) (b0 : A) => f b0 acc) (rev l) bA, B: Type
f: A -> B -> B
l: list A
b: Bfold_right f b l = fold_left (fun (acc : B) (b : A) => f b acc) (rev l) bA, B: Type
f: A -> B -> B
b: Bb = bA, B: Type
f: A -> B -> B
a: A
l: list A
b: B
IHl: fold_right f b l = fold_left (fun (acc : B) (b : A) => f b acc) (rev l) bf a (fold_right f b l) = fold_left (fun (acc : B) (b : A) => f b acc) (rev l ++ a :: nil) breflexivity.A, B: Type
f: A -> B -> B
b: Bb = brewrite IHl, fold_left_app; simpl; auto. Qed.A, B: Type
f: A -> B -> B
a: A
l: list A
b: B
IHl: fold_right f b l = fold_left (fun (acc : B) (b : A) => f b acc) (rev l) bf a (fold_right f b l) = fold_left (fun (acc : B) (b : A) => f b acc) (rev l ++ a :: nil) b
Limited reference functionality is still available: 1, 2, Goal forall {A B} (f: A -> B -> B) (l: list A) b, fold_right f b l = fold_left (fun acc b => f b acc) (rev l) b..