From 07c51b1801bd701bef61cedd571a944d9bd37e8b Mon Sep 17 00:00:00 2001 From: Josh Chen Date: Wed, 8 Jul 2020 15:55:48 +0200 Subject: 1. Initial `Definition` keyword. 2. ifelse. --- spartan/core/Spartan.thy | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) (limited to 'spartan/core/Spartan.thy') diff --git a/spartan/core/Spartan.thy b/spartan/core/Spartan.thy index 0a5fe4c..ed21934 100644 --- a/spartan/core/Spartan.thy +++ b/spartan/core/Spartan.thy @@ -6,7 +6,7 @@ imports "HOL-Eisbach.Eisbach" "HOL-Eisbach.Eisbach_Tools" keywords - "Theorem" "Lemma" "Corollary" "Proposition" :: thy_goal_stmt and + "Theorem" "Lemma" "Corollary" "Proposition" "Definition" :: thy_goal_stmt and "focus" "\" "\<^item>" "\<^enum>" "~" :: prf_script_goal % "proof" and "congruence" "print_coercions" :: thy_decl and "rhs" "derive" "prems" "vars" :: quasi_command @@ -150,28 +150,29 @@ axiomatization where \ \ \x: A. B x \ \x: A. B' x" -section \Proof commands\ +section \Infrastructure\ + +ML_file \lib.ML\ +ML_file \types.ML\ + +subsection \Proof commands\ named_theorems typechk -ML_file \lib.ML\ ML_file \goals.ML\ ML_file \focus.ML\ -ML_file \types.ML\ - -section \Congruence automation\ +subsection \Congruence automation\ consts "rhs" :: \'a\ ("..") ML_file \congruence.ML\ - -section \Methods\ - ML_file \elimination.ML\ \ \elimination rules\ ML_file \cases.ML\ \ \case reasoning rules\ +subsection \Methods\ + named_theorems intros and comps lemmas [intros] = PiF PiI SigF SigI and @@ -275,8 +276,7 @@ setup \map_theory_simpset (fn ctxt => ctxt addSolver (mk_solver "" typechk method reduce uses add = (simp add: comps add | subst comps)+ - -section \Implicit notations\ +subsection \Implicits\ text \ \?\ is used to mark implicit arguments in definitions, while \{}\ is expanded @@ -301,8 +301,7 @@ text \Automatically insert inhabitation judgments where needed:\ syntax inhabited :: \o \ prop\ ("(_)") translations "inhabited A" \ "CONST has_type {} A" - -section \Lambda coercion\ +subsection \Lambda coercion\ \ \Coerce object lambdas to meta-lambdas\ abbreviation (input) lambda :: \o \ o \ o\ -- cgit v1.2.3