aboutsummaryrefslogtreecommitdiffhomepage
path: root/hol-light/TacticRecording/examples1.ml
diff options
context:
space:
mode:
authorGravatar mark <>2012-02-16 17:09:21 +0000
committerGravatar mark <>2012-02-16 17:09:21 +0000
commitaf9234996fb53a4e7c0ec404d8dd275df17f1ccd (patch)
treef82922967f145b50480494b041178b82e36c5e1c /hol-light/TacticRecording/examples1.ml
parente4438b2984cadf3e60935cb1e37be55e63f063a0 (diff)
First version of HOL Light tactic recording.
See INSTRUCTIONS and LIMITATIONS files for more details. Currently works for flattening "packaged-up" tactic proofs into g/e commands. Won't work for most proofs because most tactics/thms haven't been promoted. Support for exporting proof graph as a series of goal pairs. Support for displaying extra information to be intercepter by PG for Prooftree.
Diffstat (limited to 'hol-light/TacticRecording/examples1.ml')
-rw-r--r--hol-light/TacticRecording/examples1.ml65
1 files changed, 65 insertions, 0 deletions
diff --git a/hol-light/TacticRecording/examples1.ml b/hol-light/TacticRecording/examples1.ml
new file mode 100644
index 00000000..b587c18f
--- /dev/null
+++ b/hol-light/TacticRecording/examples1.ml
@@ -0,0 +1,65 @@
+#use"TacticRecording/main.ml";;
+#use "TacticRecording/biolayout.ml";;
+
+pg_mode_off ();;
+
+g `x = x /\ y = y /\ z = z`;;
+e (CONJ_TAC);;
+e (REFL_TAC);;
+e (CONJ_TAC);;
+e (REFL_TAC);;
+e (REFL_TAC);;
+let th = top_thm ();;
+
+g `(!x. x = x) /\ (!y.y = y) /\ (!z.z = z)`;;
+e (REPEAT CONJ_TAC THEN GEN_TAC);;
+e (REFL_TAC);;
+e (REFL_TAC);;
+e (REFL_TAC);;
+let th = top_thm ();;
+
+g `(!x. x = x) /\ (!y.y = y) /\ (!z.z = z)`;;
+e (CONJ_TAC);;
+e (GEN_TAC);;
+e (REFL_TAC);;
+e (CONJ_TAC);;
+e (GEN_TAC);;
+e (REFL_TAC);;
+e (GEN_TAC);;
+e (REFL_TAC);;
+let th = top_thm ();;
+
+g `(!x. x = x) /\ (!y.y = y) /\ (!z.z = z)`;;
+e (REPEAT CONJ_TAC);;
+e (GEN_TAC);;
+e (REFL_TAC);;
+e (GEN_TAC);;
+e (REFL_TAC);;
+e (GEN_TAC);;
+e (REFL_TAC);;
+let th = top_thm ();;
+
+g `(!x. x = x) /\ (!y.y = y) /\ (!z.z = z)`;;
+e (REPEAT CONJ_TAC THEN GEN_TAC THEN REFL_TAC);;
+let th = top_thm ();;
+
+#use"TacticRecording/mlexport.ml";;
+
+print_executed_proof ();;
+print_flat_proof ();;
+print_thenl_proof ();;
+print_optimal_proof ();;
+
+g `(y:A) = z ==> (x:A) = x /\ y = y /\ z = z`;;
+e (STRIP_TAC);;
+e (UNDISCH_TAC `(y:A) = z`);;
+e (DISCH_TAC);;
+e (CONJ_TAC);;
+e (REFL_TAC);;
+e (CONJ_TAC);;
+e (REFL_TAC);;
+e (REFL_TAC);;
+
+
+
+