(* Title: HoTT_Methods.thy Author: Joshua Chen Date: 2018 Method setup for the HoTT logic. Relies heavily on Eisbach. *) theory HoTT_Methods imports "HOL-Eisbach.Eisbach" "HOL-Eisbach.Eisbach_Tools" HoTT_Base begin section \Deriving typing judgments\ method routine uses add = (assumption | rule add | rule)+ text \ The method @{method routine} proves type judgments @{prop "a : A"} using the rules declared @{attribute intro} in the respective theory files, as well as additional provided lemmas passed using the modifier \add\. \ section \Substitution and simplification\ ML_file "~~/src/Tools/misc_legacy.ML" ML_file "~~/src/Tools/IsaPlanner/isand.ML" ML_file "~~/src/Tools/IsaPlanner/rw_inst.ML" ML_file "~~/src/Tools/IsaPlanner/zipper.ML" ML_file "~~/src/Tools/eqsubst.ML" \ \Import the @{method subst} method, used for substituting definitional equalities.\ method compute declares comp = (subst comp) text \ Method @{method compute} performs single-step simplifications, using any rules declared @{attribute comp} in the context. Premises of the rule(s) applied are added as new subgoals. \ section \Derivation search\ text \Combine @{method routine} and @{method compute} to search for derivations of judgments.\ method derive uses lems = (routine add: lems | compute comp: lems)+ section \Induction\ text \ Placeholder section for the automation of induction, i.e. using the elimination rules. At the moment one must directly apply them with \rule X_elim\. \ end