aboutsummaryrefslogtreecommitdiff
path: root/spartan/lib
diff options
context:
space:
mode:
authorJosh Chen2020-05-22 15:43:14 +0200
committerJosh Chen2020-05-22 15:43:14 +0200
commit720da0f918118388d114e09664b129d2b29be2b1 (patch)
treee4411cceae3a790544e7bebb4eb7717c31e0fa63 /spartan/lib
parent1571e03b7dc5c7e6f2a46be57a12dd0d25fea452 (diff)
some tweaks and comments, in preparation for general inductive type elimination
Diffstat (limited to 'spartan/lib')
-rw-r--r--spartan/lib/elimination.ML5
-rw-r--r--spartan/lib/focus.ML2
-rw-r--r--spartan/lib/tactics.ML3
3 files changed, 7 insertions, 3 deletions
diff --git a/spartan/lib/elimination.ML b/spartan/lib/elimination.ML
index 85ce669..bd23c94 100644
--- a/spartan/lib/elimination.ML
+++ b/spartan/lib/elimination.ML
@@ -6,6 +6,7 @@ Type elimination automation.
structure Elim = struct
+(** Context data **)
(* Elimination rule data *)
structure Rules = Generic_Data (
type T = thm Termtab.table
@@ -30,4 +31,8 @@ val _ = Theory.setup (
fn context => (rules (Context.proof_of context)))
)
+(** General elimination-induction tactic **)
+
+
+
end
diff --git a/spartan/lib/focus.ML b/spartan/lib/focus.ML
index dd8d3d9..1d8de78 100644
--- a/spartan/lib/focus.ML
+++ b/spartan/lib/focus.ML
@@ -105,7 +105,7 @@ val schematic_subgoal_cmd = gen_schematic_subgoal Attrib.attribute_cmd
val parser =
opt_fact_binding
- -- (Scan.option (\<^keyword>\<open>premises\<close> |-- Parse.!!! opt_fact_binding))
+ -- (Scan.option (\<^keyword>\<open>prems\<close> |-- Parse.!!! opt_fact_binding))
-- for_params >> (fn ((a, b), c) =>
Toplevel.proofs (Seq.make_results o Seq.single o #2 o schematic_subgoal_cmd a b c))
diff --git a/spartan/lib/tactics.ML b/spartan/lib/tactics.ML
index 0e09533..c72947a 100644
--- a/spartan/lib/tactics.ML
+++ b/spartan/lib/tactics.ML
@@ -104,8 +104,7 @@ fun intro_tac ctxt = SUBGOAL (fn (_, i) => SIDE_CONDS
fun intros_tac ctxt = SUBGOAL (fn (_, i) =>
(CHANGED o REPEAT o CHANGED o intro_tac ctxt) i)
-(* Basic elimination tactic *)
-(*Only uses existing type judgments from the context
+(*Basic elimination tactic, only uses existing type judgments from the context
(performs no type synthesis)*)
fun elims_tac opt_tm ctxt = case opt_tm of
NONE => SUBGOAL (fn (_, i) => eresolve_tac ctxt (Elim.rules ctxt) i)