1 (* ========================================================================= *)
2 (* "Mizar Light" by Freek Wiedijk. *)
4 (* http://www.cs.ru.nl/~freek/mizar/miz.pdf *)
5 (* ========================================================================= *)
7 exception Innergoal of goal;;
9 let (GOAL_TAC:tactic) = fun gl -> raise(Innergoal gl);;
12 try refine(by(VALID tac))
14 let oldgoalstack = !current_goalstack in
15 current_goalstack := (mk_goalstate gl)::oldgoalstack;
18 (* ------------------------------------------------------------------------- *)
19 (* Set up more infix operators. *)
20 (* ------------------------------------------------------------------------- *)
22 Topdirs.dir_directory (!hol_dir);;
24 Topdirs.load_file Format.std_formatter
25 (Filename.concat (!hol_dir) "Mizarlight/pa_f.cmo");;
27 List.iter (fun s -> Hashtbl.add (Pa_j.ht) s true)
28 ["st'";"st";"at";"from";"by";"using";"proof"; "THEN'"];;
30 (* ------------------------------------------------------------------------- *)
32 (* ------------------------------------------------------------------------- *)
34 loadt "Mizarlight/miz2a.ml";;
36 (* ------------------------------------------------------------------------- *)
37 (* Projective duality proof in Mizar Light. *)
38 (* ------------------------------------------------------------------------- *)
40 loadt "Mizarlight/duality.ml";;
42 (* ------------------------------------------------------------------------- *)
43 (* A prover more closely approximating Mizar's own. *)
44 (* ------------------------------------------------------------------------- *)
46 loadt "Examples/holby.ml";;
48 (* ------------------------------------------------------------------------- *)
49 (* A version of the duality proof based on that. *)
50 (* ------------------------------------------------------------------------- *)
52 loadt "Mizarlight/duality_holby.ml";;