From 4f147cba894baa9e372e2b67211140b1a6f7b16c Mon Sep 17 00:00:00 2001 From: Josh Chen Date: Fri, 19 Jun 2020 12:41:54 +0200 Subject: reorganize --- spartan/core/ml/cases.ML | 42 ------------------------------------------ 1 file changed, 42 deletions(-) delete mode 100644 spartan/core/ml/cases.ML (limited to 'spartan/core/ml/cases.ML') diff --git a/spartan/core/ml/cases.ML b/spartan/core/ml/cases.ML deleted file mode 100644 index 560a9f1..0000000 --- a/spartan/core/ml/cases.ML +++ /dev/null @@ -1,42 +0,0 @@ -(* Title: cases.ML - Author: Joshua Chen - -Case reasoning. -*) - -structure Case: sig - -val rules: Proof.context -> thm list -val lookup_rule: Proof.context -> Termtab.key -> thm option -val register_rule: thm -> Context.generic -> Context.generic - -end = struct - -(* Context data *) - -(*Stores elimination rules together with a list of the indexnames of the - variables each rule eliminates. Keyed by head of the type being eliminated.*) -structure Rules = Generic_Data ( - type T = thm Termtab.table - val empty = Termtab.empty - val extend = I - val merge = Termtab.merge Thm.eq_thm_prop -) - -val rules = map #2 o Termtab.dest o Rules.get o Context.Proof -fun lookup_rule ctxt = Termtab.lookup (Rules.get (Context.Proof ctxt)) -fun register_rule rl = - let val hd = Term.head_of (Lib.type_of_typing (Thm.major_prem_of rl)) - in Rules.map (Termtab.update (hd, rl)) end - - -(* [cases] attribute *) -val _ = Theory.setup ( - Attrib.setup \<^binding>\cases\ - (Scan.succeed (Thm.declaration_attribute register_rule)) - "" - #> Global_Theory.add_thms_dynamic (\<^binding>\cases\, rules o Context.proof_of) -) - - -end -- cgit v1.2.3