make_args_for_apply term2pres p.Con.proof_conclude.Con.conclude_args in
B.H([],
(B.b_kw "by")::B.b_space::
- B.Text([],"(")::pres_args@[B.Text([],")")])
- else proof2pres term2pres p
+ B.Text([],"(")::pres_args@[B.Text([],")")]), None
+ else
+ (B.b_kw "by"),
+ Some (B.b_toggle [B.b_kw "proof";proof2pres term2pres p])
and proof2pres term2pres p =
let rec proof2pres p =
else if (conclude.Con.conclude_method = "FalseInd") then
falseind conclude
else if (conclude.Con.conclude_method = "Rewrite") then
- let justif =
+ let justif1, justif2 =
(match (List.nth conclude.Con.conclude_args 6) with
Con.ArgProof p -> justification term2pres p
| _ -> assert false) in
Con.Term t -> term2pres t
| _ -> assert false) in
B.V ([],
- [B.H ([],[
+ B.H ([],[
(B.b_kw "rewrite");
B.b_space; term1;
B.b_space; (B.b_kw "with");
- B.b_space; term2;
- B.indent justif])])
+ B.b_space; term2;
+ B.b_space; justif1]) ::
+ match justif2 with None -> [] | Some j -> [B.indent j])
else if conclude.Con.conclude_method = "Apply" then
let pres_args =
make_args_for_apply term2pres conclude.Con.conclude_args in