Rocoma.Main
Assumed
Print VALID.
They are satisfied: Model : VALID in Recipes_valid_model
interprets formulas in Prop.
Syntax: types (signatures), recipes, formulas.
Definitions used in the statements
Print type.
Print recipe.
Print term.
Print order.
Print recipe.
Print term.
Print order.
Print has_type.
Print complete.
Print complete.
Stacks and application chains s ∘ l.
Print stack_item.
Print appl.
Print appl.
Evaluation ⟦ s ∘ l ⟧ of a complete recipe into a formula.
Print eval.
Print tractable.
Print tractable.
Neutralisation.
Print neu.
Print neutral.
Print neutral.
Logical relations.
Print logrel.
Print logrel2.
Print logrel3.
Print stack_rel.
Print aligned.
Print strongly.
Print strongly2.
Print logrel2.
Print logrel3.
Print stack_rel.
Print aligned.
Print strongly.
Print strongly2.
Entailment, equivalence, meets.
Print entails.
Print ENT.
Print EQU.
Print fusion.
Print meet.
Print MEET.
Print ENT.
Print EQU.
Print fusion.
Print meet.
Print MEET.
Jokers (Fig. 6) and submission (appendix D).
Print joker_abs.
Print joker.
Print submits.
Print SUB.
Print joker.
Print submits.
Print SUB.
Check logical_relation_lemma. (* Lemma 3.1 *)
Check logical_relation_lemma2.
Check eval_def. (* Theorem 3.2 *)
Check exists_unique_eval.
Check neuneug. (* Lemma 3.3 *)
Check entails_refl. (* Lemma 3.4 *)
Check entails_trans. (* Lemma 3.5 *)
Check entails_36. (* Lemma 3.6 *)
Check fusion_meet. (* Lemma 3.7 *)
Check cross_lemma. (* Corollary 3.8 *)
Check entails_neu. (* Corollary 3.9 *)
Check l_3_10. (* Lemma 3.10 *)
Check c_3_10_3.
Check c_3_10_4.
Check d1. (* Lemma D.1 *)
Check joker_entails. (* Theorem 3.11 *)
Functional evaluator, extracted to OCaml in Extraction.
Axioms used
Definition results :=
(@logical_relation_lemma, @logical_relation_lemma2,
@eval_def, @exists_unique_eval,
@neuneug, @entails_refl, @entails_trans, @entails_36,
@fusion_meet, @cross_lemma, @entails_neu,
@l_3_10, @c_3_10_3, @c_3_10_4,
@d1, @joker_entails,
@evalf_sound, @evalf_complete).
Print Assumptions results.
(@logical_relation_lemma, @logical_relation_lemma2,
@eval_def, @exists_unique_eval,
@neuneug, @entails_refl, @entails_trans, @entails_36,
@fusion_meet, @cross_lemma, @entails_neu,
@l_3_10, @c_3_10_3, @c_3_10_4,
@d1, @joker_entails,
@evalf_sound, @evalf_complete).
Print Assumptions results.
The model of VALID only uses functional extensionality.
Definition model :=
(@Model.valid_assumption, @Model.valid_top, @Model.valid_top_l1,
@Model.valid_top_l2, @Model.valid_contradiction,
@Model.valid_consistent, @Model.valid_and_intro,
@Model.valid_and_elim, @Model.valid_and_intro_l,
@Model.valid_and_l_cycle, @Model.valid_imp_intro,
@Model.valid_imp_elim, @Model.valid_weak, @Model.valid_contr,
@Model.valid_cut, @Model.valid_all_mono, @Model.valid_all_and,
@Model.valid_all_de_bruijn, @Model.valid_all_elim).
Print Assumptions model.
(@Model.valid_assumption, @Model.valid_top, @Model.valid_top_l1,
@Model.valid_top_l2, @Model.valid_contradiction,
@Model.valid_consistent, @Model.valid_and_intro,
@Model.valid_and_elim, @Model.valid_and_intro_l,
@Model.valid_and_l_cycle, @Model.valid_imp_intro,
@Model.valid_imp_elim, @Model.valid_weak, @Model.valid_contr,
@Model.valid_cut, @Model.valid_all_mono, @Model.valid_all_and,
@Model.valid_all_de_bruijn, @Model.valid_all_elim).
Print Assumptions model.