let module P = Mpresentation in
(match concl with
P.Mtable _ -> (* big! *)
- P.Mtable ([("align","baseline 1");("equalrows","false");
- ("columnalign","left")],
+ P.Mtable ([None,"align","baseline 1"; None,"equalrows","false";
+ None,"columnalign","left"],
[P.Mtr([],[P.Mtd ([],P.Mrow([],items))]);
P.Mtr ([],[P.Mtd ([],P.indented concl)])])
| _ -> (* small *)
- P.Mrow([],items@[P.Mspace([("width","0.1cm")]);concl]))
+ P.Mrow([],items@[P.Mspace([None,"width","0.1cm"]);concl]))
;;
let make_concl verb concl =
let module P = Mpresentation in
(match concl with
P.Mtable _ -> (* big! *)
- P.Mtable ([("align","baseline 1");("equalrows","false");
- ("columnalign","left")],
- [P.Mtr([],[P.Mtd ([],P.Mtext([("mathcolor","Red")],verb))]);
+ P.Mtable ([None,"align","baseline 1"; None,"equalrows","false";
+ None,"columnalign","left"],
+ [P.Mtr([],[P.Mtd ([],P.Mtext([None,"mathcolor","Red"],verb))]);
P.Mtr ([],[P.Mtd ([],P.indented concl)])])
| _ -> (* small *)
P.Mrow([],
- [P.Mtext([("mathcolor","Red")],verb);
- P.Mspace([("width","0.1cm")]);
+ [P.Mtext([None,"mathcolor","Red"],verb);
+ P.Mspace([None,"width","0.1cm"]);
concl]))
;;
| Con.Term t ->
if is_first then
(term2pres t)::row
- else P.Mspace([("width","0.1cm")])::P.Mi([],"_")::row
+ else P.Mspace([None,"width","0.1cm"])::P.Mi([],"_")::row
| Con.ArgProof _
| Con.ArgMethod _ ->
- P.Mspace([("width","0.1cm")])::P.Mi([],"_")::row) in
+ P.Mspace([None,"width","0.1cm"])::P.Mi([],"_")::row) in
match args with
hd::tl ->
make_arg_for_apply true hd
let pres_args =
make_args_for_apply term2pres p.Con.proof_conclude.Con.conclude_args in
P.Mrow([],
- P.Mtext([("mathcolor","Red")],"by")::P.Mspace([("width","0.1cm")])::
+ P.Mtext([None,"mathcolor","Red"],"by")::P.Mspace([None,"width","0.1cm"])::
P.Mo([],"(")::pres_args@[P.Mo([],")")])
else proof2pres term2pres p
None -> P.Mtext([],"NO PROOF!!!")
| Some c -> c) in
let action =
- P.Maction([("actiontype","toggle")],
+ P.Maction([None,"actiontype","toggle"],
[(make_concl "proof of" ac);
body]) in
- P.Mtable ([("align","baseline 1");("equalrows","false");
- ("columnalign","left")],
+ P.Mtable ([None,"align","baseline 1"; None,"equalrows","false";
+ None,"columnalign","left"],
[P.Mtr ([],[P.Mtd ([],P.Mfenced([],[P.Mtext ([],name)]))]);
P.Mtr ([],[P.Mtd ([], P.indented action)])])
let module P = Mpresentation in
List.fold_right
(fun ce continuation ->
- P.Mtable([("align","baseline 1");("equalrows","false");
- ("columnalign","left")],
+ P.Mtable([None,"align","baseline 1"; None,"equalrows","false";
+ None,"columnalign","left"],
[P.Mtr([],[P.Mtd ([],ce2pres ce)]);
P.Mtr([],[P.Mtd ([], continuation)])])) c continuation
Some s ->
let ty = term2pres d.Con.dec_type in
P.Mrow ([],
- [P.Mtext([("mathcolor","Red")],"Assume");
- P.Mspace([("width","0.1cm")]);
+ [P.Mtext([None,"mathcolor","Red"],"Assume");
+ P.Mspace([None,"width","0.1cm"]);
P.Mi([],s);
P.Mtext([],":");
ty])
Some s ->
let ty = term2pres h.Con.dec_type in
P.Mrow ([],
- [P.Mtext([("mathcolor","Red")],"Suppose");
- P.Mspace([("width","0.1cm")]);
+ [P.Mtext([None,"mathcolor","Red"],"Suppose");
+ P.Mspace([None,"width","0.1cm"]);
P.Mtext([],"(");
P.Mi ([],s);
P.Mtext([],")");
- P.Mspace([("width","0.1cm")]);
+ P.Mspace([None,"width","0.1cm"]);
ty])
| None ->
prerr_endline "NO NAME!!"; assert false)
P.indented (proof2pres p)
else
proof2pres p in
- P.Mtable([("align","baseline 1");("equalrows","false");
- ("columnalign","left")],
+ P.Mtable([None,"align","baseline 1"; None,"equalrows","false";
+ None,"columnalign","left"],
[P.Mtr([],[P.Mtd ([],hd)]);
P.Mtr([],[P.Mtd ([], continuation)])])) ac continuation
None -> P.Mtext([],"NO SYNTH!!!")
| Some c -> (term2pres c)) in
P.Mtable
- ([("align","baseline 1");("equalrows","false");("columnalign","left")],
+ ([None,"align","baseline 1"; None,"equalrows","false"; None,"columnalign","left"],
[P.Mtr([],[P.Mtd([],make_concl "we must prove" expected)]);
P.Mtr([],[P.Mtd([],make_concl "or equivalently" synth)]);
P.Mtr([],[P.Mtd([],proof2pres subproof)])])
[Con.Term t] -> term2pres t
| _ -> assert false) in
make_row
- [arg;P.Mspace([("width","0.1cm")]);P.Mtext([],"proves")] conclusion
+ [arg;P.Mspace([None,"width","0.1cm"]);P.Mtext([],"proves")] conclusion
else if conclude.Con.conclude_method = "Intros+LetTac" then
let conclusion =
(match conclude.Con.conclude_conclusion with
(match conclude.Con.conclude_args with
[Con.ArgProof p] ->
P.Mtable
- ([("align","baseline 1");("equalrows","false");
- ("columnalign","left")],
+ ([None,"align","baseline 1"; None,"equalrows","false";
+ None,"columnalign","left"],
[P.Mtr([],[P.Mtd([],proof2pres p)]);
P.Mtr([],[P.Mtd([],
(make_concl "we proved *" conclusion))])]);
(match conclude.Con.conclude_conclusion with
None -> P.Mtext([],"NO Conclusion!!!")
| Some c -> term2pres c) in
- P.Mtable ([("align","baseline 1");("equalrows","false");
- ("columnalign","left")],
+ P.Mtable ([None,"align","baseline 1";None,"equalrows","false";
+ None,"columnalign","left"],
[P.Mtr ([],[P.Mtd ([],P.Mrow([],[
- P.Mtext([("mathcolor","Red")],"rewrite");
- P.Mspace([("width","0.1cm")]);term1;
- P.Mspace([("width","0.1cm")]);
- P.Mtext([("mathcolor","Red")],"with");
- P.Mspace([("width","0.1cm")]);term2]))]);
+ P.Mtext([None,"mathcolor","Red"],"rewrite");
+ P.Mspace([None,"width","0.1cm"]);term1;
+ P.Mspace([None,"width","0.1cm"]);
+ P.Mtext([None,"mathcolor","Red"],"with");
+ P.Mspace([None,"width","0.1cm"]);term2]))]);
P.Mtr ([],[P.Mtd ([],P.indented justif)]);
P.Mtr ([],[P.Mtd ([],make_concl "we proved" conclusion)])])
else if conclude.Con.conclude_method = "Apply" then
make_args_for_apply term2pres conclude.Con.conclude_args in
let by =
P.Mrow([],
- P.Mtext([("mathcolor","Red")],"by")::P.Mspace([("width","0.1cm")])::
+ P.Mtext([None,"mathcolor","Red"],"by")::P.Mspace([None,"width","0.1cm"])::
P.Mo([],"(")::pres_args@[P.Mo([],")")]) in
match conclude.Con.conclude_conclusion with
None -> P.Mrow([],[P.Mtext([],"QUA");by])
| Some t ->
let concl = (term2pres t) in
let ann_concl = make_concl "we proved" concl in
- P.Mtable ([("align","baseline 1");("equalrows","false");
- ("columnalign","left")],
+ P.Mtable ([None,"align","baseline 1"; None,"equalrows","false";
+ None,"columnalign","left"],
[P.Mtr ([],[P.Mtd ([],by)]);
P.Mtr ([],[P.Mtd ([],ann_concl)])])
else let body =
P.Mtable
- ([("align","baseline 1");("equalrows","false");("columnalign","left")],
+ ([None,"align","baseline 1"; None,"equalrows","false"; None,"columnalign","left"],
[P.Mtr ([],[P.Mtd ([],P.Mtext([],"Apply method" ^ conclude.Con.conclude_method ^ " to"))]);
P.Mtr ([],
[P.Mtd ([],
(P.indented
(P.Mtable
- ([("align","baseline 1");("equalrows","false");
- ("columnalign","left")],
+ ([None,"align","baseline 1"; None,"equalrows","false";
+ None,"columnalign","left"],
args2pres conclude.Con.conclude_args))))])]) in
match conclude.Con.conclude_conclusion with
None -> body
| Some t ->
let concl = (term2pres t) in
let ann_concl = make_concl "we proved" concl in
- P.Mtable ([("align","baseline 1");("equalrows","false");
- ("columnalign","left")],
+ P.Mtable ([None,"align","baseline 1"; None,"equalrows","false";
+ None,"columnalign","left"],
[P.Mtr ([],[P.Mtd ([],body)]);
P.Mtr ([],[P.Mtd ([],ann_concl)])])
let we_proved =
(make_concl "we proved" proof_conclusion) in
P.Mtable
- ([("align","baseline 1");("equalrows","false");("columnalign","left")],
+ ([None,"align","baseline 1"; None,"equalrows","false"; None,"columnalign","left"],
P.Mtr ([],[P.Mtd ([],induction_on)])::
P.Mtr ([],[P.Mtd ([],to_prove)])::
(make_cases args_for_cases) @
(match h.Con.dec_name with
None -> "NO NAME???"
| Some n ->n) in
- [P.Mspace([("width","0.1cm")]);
+ [P.Mspace([None,"width","0.1cm"]);
P.Mi ([],name);
P.Mtext([],":");
(term2pres h.Con.dec_type)]
dec@p) args [] in
let pattern =
P.Mtr ([],[P.Mtd ([],P.Mrow([],
- P.Mtext([],"Case")::P.Mspace([("width","0.1cm")])::name::pattern_aux@
- [P.Mspace([("width","0.1cm")]);
+ P.Mtext([],"Case")::P.Mspace([None,"width","0.1cm"])::name::pattern_aux@
+ [P.Mspace([None,"width","0.1cm"]);
P.Mtext([],"->")]))]) in
let subconcl =
(match p.Con.proof_conclude.Con.conclude_conclusion with
[P.Mtext([],"(");
P.Mi ([],name);
P.Mtext([],")");
- P.Mspace([("width","0.1cm")]);
+ P.Mspace([None,"width","0.1cm"]);
term2pres h.Con.dec_type]))
| _ -> assert false in
let hyps =
let body = conclude2pres p.Con.proof_conclude true in
let presacontext =
acontext2pres p.Con.proof_apply_context body true in
- P.Mtable ([("align","baseline 1");("equalrows","false");
- ("columnalign","left")],
+ P.Mtable ([None,"align","baseline 1"; None,"equalrows","false";
+ None,"columnalign","left"],
pattern::asubconcl::induction_hypothesis@
[P.Mtr([],[P.Mtd([],presacontext)])])
| _ -> assert false in