(* This is the end of the "proof by types" and
makes the results available on new theorems *)
AOT_register_type_constraints Term: ‹_::AOT_Term_id›‹_::AOT_Term_id›
AOT_register_type_constraints
Individual: ‹κ›‹_::{AOT_κs, AOT_Term_id}›
AOT_register_type_constraints
Relation: ‹<_::{AOT_κs, AOT_Term_id}>›
-:reljava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31 \<open>([\<Pi>]\<kappa>\<^sub>1...\<kappa>\<^sub>n\<or>\<kappa>\<^sub>1...\<kappa>\<^sub>n[\<Pi>])\<rightarrow>\<exists>\<beta>(\<beta>=\<Pi>)\<close> byrule=I::1""E"(1)"\<or>E"(1)"cqt5:a[axiom_inst] "cqt:5:b"[axiom_inst]"\<rightarrow>I""\<exists>I"(1))
"act-conj-act:3": ‹(\Aφ & \Aψ) →\A(φ & ψ({0..} ∩
-
AOT_have \<open\
by (rule RN) (fact Adjunction)
java.lang.NullPointerException
using have **: Inf ({b..}..} \interA) ∈.} ∩
AOT_hence ‹\Aφ →\A(ψ → (φ & ψ))›
using "act-cond" "→E" by blast
moreover AOT_have ‹🚫
by (fact "act-cond")
ultimately AOT_have ‹
using "→I" "→E" by metis
AOT_thus ‹(\Aφ & \Aψ) →\A(φ: "b({0. \<inter
by (metis Importation "→E")
"act-conj-act:4": ‹\A(case True
-
AOT_have \open>\<A(> φ> \rightarrow \<^>\))›
by (fact "act-conj-act:3")
moreover AOT_have ‹\A(\Aφ → φ) & \A(φ →\Aφ)›
using "&I" "act-conj-act:1" "act-conj-act:2" by simp
ultimately AOT_have ζ: ‹\A((\Aφ → φ) & (φ →\Aφ))›
using "→E" by blast
AOT_have ‹\A(((\Aφ → φ) & (φ →\Aφ)) → (\Aφ ≡ φ))›
using "conventions:3"[THEN "df-rules-formulas[2]",
THEN act_closure, axiom_inst] by blast
AOT_hence ‹\A((\Aφ → φ) & (φ →\Aφ)) →\A(\Aφ ≡ φ)›
using "act-cond" "→E" by blast
AOT_thus ‹\A(\Aφ ≡ φ)› using ζ "→E" by blast
(* TODO: Consider introducing AOT_inductive. *) inductive arbitrary_actualization for φ where ‹arbitrary_actualization φ «\Aφ moreover have "Inf ({b..<} ‹arbitrary_actualization φ «\Aψ¬› if ‹arbitrary_actualization φ ψ› u no Tr p by b
arbitrary_actualization.cases[AOT]
arbitrary_actualization.induct[AOT]
arbitrary_actualization.simps[AOT]
arbitrary_actualization.intros[AOT]
arbitrary_actualization :: ‹φ' ==> φ' ==> AOT_prop›
(‹ARBITRARY'_ACTUALIZATION'(_,_')›)
AOT_modally_strict {
fix φ
AOT_have ‹ARBITRARY_ACTUALIZATION(>= {0.}∩) = ({b..<}
using AOT_PLM.arbitrary_actualization.intros by metis
AOT_have ‹ARBITRARY_ACTUALIZATION(\Aφ ≡ φ, of "{b..} ∩(metisasm nonn finite_Infinite_atLeastLessTha)
using AOT_PLM.arbitrary_actualization.intros by metis
AOT_have ‹ARBITRARY_ACTUALIZATION(\Aφqed
AOTarbitrary_.intros by metis
}
"closure-act:4": ‹\A∀α1...∀αn\A(\Aφ{α1...αn} ≡ φ{α1...αn})›
using "closure-act:3" .
"RA[1]":
assumes ‹\⊨ φ›
shows ‹\⊨\Aφ› ―‹While this proof is rejected in PLM,
we merely state it as modally-fragile rule,
which addresses the concern in PLM.›
using "¬¬E" assms "≡E"(3) "logic-actual"[act_axiom_inst]
"logic-actual-nec:1"[axiom_inst] "modus-tollens:2" by blast
"RA[2]":
assumes ‹\⊨\◻ φ›
shows ‹\⊨\◻\Aφ› ―‹This rule is in fact a consequence of RN and
does not require an appeal to the semantics itself.›
using RN assms "nec-imp-act" "vdash-properties:5" by blast
"RA[3]":
assumes ‹Γ \⊨\◻ φ›
shows ‹\AΓ \⊨\◻\Aφ›
text‹This rule is only derivable from the semantics,
but apparently no proof actually relies on it.
If this turns out to be required, it is valid to derive it from the
semantics just like RN, but we refrain from doing so, unless necessary.›
(* using assms by (meson AOT_sem_act imageI) *) oops―‹discard the rule›
AOT_act_theorem "ANeg:1": ‹¬\Aφ ≡¬φ› by (simp add: "RA[1]""contraposition:1[1]""deduction-theorem" "≡I""logic-actual"[act_axiom_inst])
AOT_act_theorem "fund-cont-desc": ‹x = \ιx(φ{x}) ≡∀z(φ{z} ≡ z = x)› using descriptions[axiom_inst] "act-quant-uniq""≡E"(5) by fast
AOT_act_theorem hintikka: ‹x = \ιx(φ{x}) ≡ (φ{x} & ∀z (φ{z} → z = x))› using"Commutativity of ≡"[THEN"≡E"(1)] "term-out:3" "fund-cont-desc""≡E"(5) by blast
locale russell_axiom = fixes ψ assumes ψ_denotes_asm: "[v ⊨ ψ{κ}] ==> [v ⊨ κ↓]" begin
AOT_act_theorem "russell-axiom": ‹ψ{\ιx φ{x}} ≡∃x(φ{x} & ∀z(φ{z} → z = x) & ψ{x})› proof -
AOT_have b: ‹∀x (x = \ιx φ{x} ≡ (φ{x} & ∀z(φ{z} → z = x)))› using hintikka "∀I"by fast show ?thesis proof(rule "≡I"; rule "→I")
AOT_assume c: ‹ψ{\ιx φ{x}}›
AOT_hence d: ‹\ιx φ{x}↓› using ψ_denotes_asm by blast
AOT_hence ‹∃y (y = \ιx φ{x})› by (metis "rule=I:1""existential:1") then AOT_obtain a where a_def: ‹a = \ιx φ{x}› using"instantiation"[rotated] by blast moreover AOT_have ‹a = \ιx φ{x} ≡ (φ{a} & ∀z(φ{z} → z = a))› using b "∀E"by blast ultimately AOT_have ‹φ{a} & ∀z(φ{z} → z = a)› using"≡E"by blast moreover AOT_have ‹ψ{a}› proof -
AOT_have 1: ‹∀x∀y(x = y → y = x)› by (simp add: "id-eq:2""universal-cor")
AOT_have ‹a = \ιx φ{x} →\ιx φ{x} = a› by (rule "∀E"(1)[where τ="«\<iota>x φ{x}¬"]; rule "∀E"(2)[where β=a])
(auto simp: 1 d "universal-cor")
AOT_thus ‹ψ{a}› using a_def c "rule=E""→E"by blast qed ultimately AOT_have ‹φ{a} & ∀z(φ{z} → z = a) & ψ{a}›by (rule "&I")
AOT_thus ‹∃x(φ{x} & ∀z(φ{z} → z = x) & ψ{x})›by (rule "∃I") next
AOT_assume ‹∃x(φ{x} & ∀z(φ{z} → z = x) & ψ{x})› then AOT_obtain b where g: ‹φ{b} & ∀z(φ{z} → z = b) & ψ{b}› using"instantiation"[rotated] by blast
AOT_hence h: ‹b = \ιx φ{x} ≡ (φ{b} & ∀z(φ{z} → z = b))› using b "∀E"by blast
AOT_have ‹φ{b} & ∀z(φ{z} → z = b)›and j: ‹ψ{b}› using g "&E"by blast+
AOT_hence ‹b = \ιx φ{x}›using h "≡E"by blast
AOT_thus ‹ψ{\ιx φ{x}}›using j "rule=E"by blast qed qed end
interpretation"russell-axiom[exe,1]": russell_axiom ‹λ κ . «[Π]꬛ by standard (metis "cqt:5:a[1]"[axiom_inst, THEN"→E"] "&E"(2)) interpretation"russell-axiom[exe,2,1,1]": russell_axiom ‹λ κ . «[Π]κκ'¬› by standard (metis "cqt:5:a[2]"[axiom_inst, THEN"→E"] "&E") interpretation"russell-axiom[exe,2,1,2]": russell_axiom ‹λ κ . «[Π]κ'꬛ by standard (metis "cqt:5:a[2]"[axiom_inst, THEN"→E"] "&E"(2)) interpretation"russell-axiom[exe,2,2]": russell_axiom ‹λ κ . «[Π]κ꬛ by standard (metis "cqt:5:a[2]"[axiom_inst, THEN"→E"] "&E"(2)) interpretation"russell-axiom[exe,3,1,1]": russell_axiom ‹λ κ . «[Π]κκ'κ''¬› by standard (metis "cqt:5:a[3]"[axiom_inst, THEN"→E"] "&E") interpretation"russell-axiom[exe,3,1,2]": russell_axiom ‹λ κ . «[Π]κ'κκ''¬› by standard (metis "cqt:5:a[3]"[axiom_inst, THEN"→E"] "&E") interpretation"russell-axiom[exe,3,1,3]": russell_axiom ‹λ κ . «[Π]κ'κ''꬛ by standard (metis "cqt:5:a[3]"[axiom_inst, THEN"→E"] "&E"(2)) interpretation"russell-axiom[exe,3,2,1]": russell_axiom ‹λ κ . «[Π]κκκ'¬› by standard (metis "cqt:5:a[3]"[axiom_inst, THEN"→E"] "&E") interpretation"russell-axiom[exe,3,2,2]": russell_axiom ‹λ κ . «[Π]κκ'꬛ by standard (metis "cqt:5:a[3]"[axiom_inst, THEN"→E"] "&E"(2)) interpretation"russell-axiom[exe,3,2,3]": russell_axiom ‹λ κ . «[Π]κ'κ꬛ by standard (metis "cqt:5:a[3]"[axiom_inst, THEN"→E"] "&E"(2)) interpretation"russell-axiom[exe,3,3]": russell_axiom ‹λ κ . «[Π]κκ꬛ by standard (metis "cqt:5:a[3]"[axiom_inst, THEN"→E"] "&E"(2))
interpretation"russell-axiom[enc,1]": russell_axiom ‹λ κ . «κ[Π]¬› by standard (metis "cqt:5:b[1]"[axiom_inst, THEN"→E"] "&E"(2)) interpretation"russell-axiom[enc,2,1]": russell_axiom ‹λ κ . «κκ'[Π]¬› by standard (metis "cqt:5:b[2]"[axiom_inst, THEN"→E"] "&E") interpretation"russell-axiom[enc,2,2]": russell_axiom ‹λ κ . «κ'κ[Π]¬› by standard (metis "cqt:5:b[2]"[axiom_inst, THEN"→E"] "&E"(2)) interpretation"russell-axiom[enc,2,3]": russell_axiom ‹λ κ . «κκ[Π]¬› by standard (metis "cqt:5:b[2]"[axiom_inst, THEN"→E"] "&E"(2)) interpretation"russell-axiom[enc,3,1,1]": russell_axiom ‹λ κ . «κκ'κ''[Π]¬› by standard (metis "cqt:5:b[3]"[axiom_inst, THEN"→E"] "&E") interpretation"russell-axiom[enc,3,1,2]": russell_axiom ‹λ κ . «κ'κκ''[Π]¬› by standard (metis "cqt:5:b[3]"[axiom_inst, THEN"→E"] "&E") interpretation"russell-axiom[enc,3,1,3]": russell_axiom ‹λ κ . «κ'κ''κ[Π]¬› by standard (metis "cqt:5:b[3]"[axiom_inst, THEN"→E"] "&E"(2)) interpretation"russell-axiom[enc,3,2,1]": russell_axiom ‹λ κ . «κκκ'[Π]¬› by standard (metis "cqt:5:b[3]"[axiom_inst, THEN"→E"] "&E") interpretation"russell-axiom[enc,3,2,2]": russell_axiom ‹λ κ . «κκ'κ[Π]¬› by standard (metis "cqt:5:b[3]"[axiom_inst, THEN"→E"] "&E"(2)) interpretation"russell-axiom[enc,3,2,3]": russell_axiom ‹λ κ . «κ'κκ[Π]¬› by standard (metis "cqt:5:b[3]"[axiom_inst, THEN"→E"] "&E"(2)) interpretation"russell-axiom[enc,3,3]": russell_axiom ‹λ κ . «κκκ[Π]¬› by standard (metis "cqt:5:b[3]"[axiom_inst, THEN"→E"] "&E"(2))
AOT_act_theorem "!-exists:1": ‹\ιx φ{x}↓≡∃!x φ{x}› proof(rule "≡I"; rule "→I")
AOT_assume ‹\ιx φ{x}↓›
AOT_hence ‹∃y (y = \ιx φ{x})›by (metis "rule=I:1""existential:1") then AOT_obtain a where‹a = \ιx φ{x}› using"instantiation"[rotated] by blast
AOT_hence ‹φ{a} & ∀z (φ{z} → z = a)› using hintikka "≡E"by blast
AOT_hence ‹∃x (φ{x} & ∀z (φ{z} → z = x))› by (rule "∃I")
AOT_thus ‹∃!x φ{x}› using"uniqueness:1"[THEN"≡dfI"] by blast next
AOT_assume ‹∃!x φ{x}›
AOT_hence ‹∃x (φ{x} & ∀z (φ{z} → z = x))› using"uniqueness:1"[THEN"≡dfE"] by blast then AOT_obtain b where‹ y" by (simp add: below_bool_def)
using "instantiation"[rotated] b (rul beo_aiy OFim] ip ad:blo_oo_d) ‹>. f x ∨ [OF f])
h "≡co2otColet sm,cot2n]:
AOT_thus <>\down>›
by (metis "t=t-proper:2" "vdash-properties:6")
"cont f"
using "!-exists::1""free-ths:1 "\<>Ex. ∪f x. g x y)"
"y-in:1": ‹ (∪f (⊔ j. Y j) y)"
using "&E"(1) "→I" hintikka "≡ "y \<> (Y i))" and "x∈ j. g (Y j) y)" by (auto simp add: cont2contlubE[OF as assms(1) Limit(1)] cont2cont[OF assms(2) Limit(1)])
(* Note: generalized alphabetic variant of the last theorem *)
AOT_act_theorem Y
AOT_act_theorem "y-in:3": ‹
(rule "→I")
AOT_assume ‹\ιx φ{x}↓›
AOT_hence ‹∃y (y = \ιx φ{x})›
by (metis "rule=I:1" "existential:1")
then AOT_obtain a where ‹a = \ιx φ{x}›
using "instantiation"[rotated] by blast
moreover AOT_have ‹φ{a}›
using calculation hintikka "≡E"(1) "&E" by blast
ultimately AOT_show ‹φ{\ιx φ{x}}› using "rule=E" by blast
"y-in:4": ‹∃y (y = \ιx φ{x}) → φ{\ιx φ{x}}›
using "y-in:3"[THEN "→E"] "free-thms:1"[THEN "≡E"(2)] "→I" by blast
"act-quant-nec": ‹∀β (\Aφ{β} ≡ β = α) ≡∀β(\A\Aφ{β} ≡ β = α)›
(rule "≡I"; rule "→I")
AOT_assume ‹∀β (\Aφ{β} ≡ β = α)›
AOT_hence ‹\Aφ{β} ≡ β = α› for β using "∀E" by blast
AOT_hence ‹\A\Aφ{β} ≡ β = α› for β
by (metis "Act-Basic:5" "act-conj-act:4" "≡E"(1) "≡E"(5))
AOT_thus ‹∀β(\A\Aφ{β} ≡ β = α)›
by (rule "∀I")
AOT_assume ‹∀β(\A\Aφ{β} ≡ β = α)›
AOT_hence ‹\A\Aφ{β} ≡ β = α› for β using "∀E" by blast
AOT_hence ‹\Aφ{β} ≡ β = α› for β
by (metis "Act-Basic:5" "act-conj-act:4" "≡E"(1) "≡E"(6))
AOT_thus ‹∀β (\Aφ{β} ≡ β = α)›
by (rule "∀I")
"equi-desc-descA:1": ‹x = \ιx φ{x} ≡ x = \ιx(\Aφ{x})›
-
AOT_have ‹x = \ιx φ{x} ≡∀z (\Aφ{z} ≡ z = x)›
using descriptions[axiom_inst] by blast
also AOT_have ‹... ≡∀z (\A\Aφ{z} ≡ z = x)›
proof(rule "≡I"; rule "→I"; rule "∀I")
AOT_assume ‹∀z (\Aφ{z} ≡ z = x)›
AOT_hence ‹\Aφ{a} ≡ a = x› for a
using "∀E" by blast
AOT_thus ‹\A\Aφ{a} ≡ a = x› for a
by (metis "Act-Basic:5" "act-conj-act:4" "≡E"(1) "≡E"(5))
next
AOT_assume ‹∀z (\A\Aφ{z} ≡ z = x)›
AOT_hence ‹\A\Aφ{a} ≡ a = x› for a
using "∀E" by blast
AOT_thus ‹\Aφ{a} ≡ a = x› for a
by (metis "Act-Basic:5" "act-conj-act:4" "≡E"(1) "≡E"(6))
qed
also AOT_have ‹... ≡ x = \ιx(\Aφ{x})›
using "Commutativity of ≡"[THEN "≡E"(1)] descriptions[axiom_inst] by fast
finally show ?thesis .
"equi-desc-descA:2": ‹\ιx φ{x}↓→\ιx φ{x} = \ιx(\Aφ{x})›
(rule "→I")
AOT_assume ‹\ιx φ{x}↓›
AOT_hence ‹∃y (y = \ιx φ{x})›
by (metis "rule=I:1" "existential:1")
then AOT_obtain a where ‹a = \ιx φ{x}›
using "instantiation"[rotated] by blast
moreover AOT_have ‹a = \ιx(\Aφ{x})›
using calculation "equi-desc-descA:1"[THEN "≡E"(1)] by blast
ultimately AOT_show ‹\ιx φ{x} = \ιx(\Aφ{x})›
using "rule=E" by fast
"nec-hintikka-scheme": ‹x = \ιx φ{x} ≡\Aφ{x} & ∀z(\Aφ{z} → z = x)›
-
AOT_have ‹x = \ιx φ{x} ≡∀z(\Aφ{z} ≡ z = x)›
using descriptions[axiom_inst] by blast
also AOT_have ‹…≡ (\Aφ{x} & ∀z(\Aφ{z} → z = x))›
using "Commutativity of ≡"[THEN "≡E"(1)] "term-out:3" by fast
finally show ?thesis.
"equiv-desc-eq:1": ‹\A∀x(φ{x} ≡ ψ{x}) →∀x (x = \ιx φ{x} ≡ x = \ιx ψ{x})›
(rule "→I"; rule "∀I")
fix β
AOT_assume ‹\A∀x(φ{x} ≡ ψ{x})›
AOT_hence ‹\A(φ{x} ≡ ψ{x})› for x
using "logic-actual-nec:3"[axiom_inst, THEN "≡E"(1)] "∀E"(2) by blast
AOT_hence 0: ‹\Aφ{x} ≡\Aψ{x}› for x
by (metis "Act-Basic:5" "≡E"(1))
AOT_have ‹β = \ιx φ{x} ≡\Aφ{β} & ∀z(\Aφ{z} → z = β)›
using "nec-hintikka-scheme" by blast
also AOT_have ‹... ≡\Aψ{β} & ∀z(\Aψ{z} → z = β)›
proof (rule "≡I"; rule "→I")
AOT_assume 1: ‹\Aφ{β} & ∀z(\Aφ{z} → z = β)›
AOT_hence ‹\Aφ{z} → z = β› for z
using "&E" "∀E" by blast
AOT_hence ‹\Aψ{z} → z = β› for z
using 0 "≡E" "→I" "→E" by metis
AOT_hence ‹∀z(\Aψ{z} → z = β)›
using "∀I" by fast
moreover AOT_have ‹\Aψ{β}›
using "&E" 0[THEN "≡E"(1)] 1 by blast
ultimately AOT_show ‹\Aψ{β} & ∀z(\Aψ{z} → z = β)›
using "&I" by blast
next
AOT_assume 1: ‹\Aψ{β} & ∀z(\Aψ{z} → z = β)›
AOT_hence ‹\Aψ{z} → z = β› for z
using "&E" "∀E" by blast
AOT_hence ‹\Aφ{z} → z = β› for z
using 0 "≡E" "→I" "→E" by metis
AOT_hence ‹∀z(\Aφ{z} → z = β)›
using "∀I" by fast
moreover AOT_have ‹\Aφ{β}›
using "&E" 0[THEN "≡E"(2)] 1 by blast
ultimately AOT_show ‹\Aφ{β} & ∀z(\Aφ{z} → z = β)›
using "&I" by blast
qed
also AOT_have ‹... ≡ β = \ιx ψ{x}›
using "Commutativity of ≡"[THEN "≡E"(1)] "nec-hintikka-scheme" by blast
finally AOT_show ‹β = \ιx φ{x} ≡ β = \ιx ψ{x}› .
"equiv-desc-eq:2": ‹\ιx φ{x}↓ & \A∀x(φ{x} ≡ ψ{x}) →\ιx φ{x} = \ιx ψ{x}›
(rule "→I")
AOT_assume ‹\ιx φ{x}↓ & \A∀x(φ{x} ≡ ψ{x})›
AOT_hence 0: ‹∃y (y = \ιx φ{x})› and
1: ‹∀x (x = \ιx φ{x} ≡ x = \ιx ψ{x})›
using "&E" "free-thms:1"[THEN "≡E"(1)] "equiv-desc-eq:1" "→E" by blast+
then AOT_obtain a where ‹a = \ιx φ{x}›
using "instantiation"[rotated] by blast
moreover AOT_have ‹a = \ιx ψ{x}›
using calculation 1 "∀E" "≡E"(1) by fast
ultimately AOT_show ‹\ιx φ{x} = \ιx ψ{x}›
using "rule=E" by fast
"equiv-desc-eq:3": ‹\ιx φ{x}↓ & ◻∀x(φ{x} ≡ ψ{x}) →\ιx φ{x} = \ιx ψ{x}›
using "→I" "equiv-desc-eq:2"[THEN "→E", OF "&I"] "&E"
"nec-imp-act"[THEN "→E"] by metis
(* Note: this is a special case of "exist-nec" *)
AOT_theorem "equiv-desc-eq:4": ‹\ιx φ{x}↓→◻\ιx φ{x}↓› proof(rule "→I")
AOT_assume ‹\ιx φ{x}↓›
AOT_hence ‹∃y (y = \ιx φ{x})› by (metis "rule=I:1""existential:1") then AOT_obtain a where‹a = \ιx φ{x}› using"instantiation"[rotated] by blast
AOT_thus ‹◻\ιx φ{x}↓› using"ex:2:a""rule=E"by fast qed
AOT_theorem "equiv-desc-eq:5": ‹\ιx φ{x}↓→∃y ◻(y = \ιx φ{x})› proof(rule "→I")
AOT_assume ‹\ιx φ{x}↓›
AOT_hence ‹∃y (y = \ιx φ{x})› by (metis "rule=I:1""existential:1") then AOT_obtain a where‹a = \ιx φ{x}› using"instantiation"[rotated] by blast
AOT_hence ‹◻(a = \ιx φ{x})› by (metis "id-nec:2""vdash-properties:10")
AOT_thus ‹∃y ◻(y = \ιx φ{x})› by (rule "∃I") qed
text‹Note that instead of deriving @{text "rule-sub-lem:2"},
@{text "rule-sub-lem:3"}, @{text "rule-sub-lem:4"},
and @{text "rule-sub-nec"}, we construct substitution methods instead.›
instance proof fix ψ χ :: oand φ :: ‹o==>o› assume cond: ‹AOT_subst_cond ψ χ› assume‹AOT_subst φ› moreover AOT_have ‹\⊨\◻ ψ ≡ χ› using cond unfolding AOT_subst_cond_o_defby blast ultimately AOT_show ‹\⊨\◻ φ{ψ} ≡ φ{χ}› proof (induct arbitrary: ψ χ) case AOT_subst_o_id thus ?case using"≡E"(2) "oth-class-taut:4:b""rule-sub-lem:1:a"by blast next case (AOT_subst_o_const ψ) thus ?case by (simp add: "oth-class-taut:3:a") next case (AOT_subst_o_not Θ) thus ?case by (simp add: RN "rule-sub-lem:1:a") next case (AOT_subst_o_imp Θ Ξ) thus ?case by (meson RN "≡E"(5) "rule-sub-lem:1:b""rule-sub-lem:1:c") next case (AOT_subst_o_lambda0 Θ) thus ?case by (simp add: RN "rule-sub-lem:1:e") next case (AOT_subst_o_act Θ) thus ?case by (simp add: RN "rule-sub-lem:1:f") next case (AOT_subst_o_box Θ) thus ?case by (simp add: RN "rule-sub-lem:1:g") next case (AOT_subst_o_by_def Θ Ξ)
AOT_modally_strict {
AOT_have ‹Ξ{ψ} ≡ Ξ{χ}› using AOT_subst_o_by_def by simp
AOT_thus ‹Θ{ψ} ≡ Θ{χ}› using"≡Df"[OF AOT_subst_o_by_def(1), of _ ψ] "≡Df"[OF AOT_subst_o_by_def(1), of _ χ] by (metis "≡E"(6) "oth-class-taut:3:a")
} qed qed end
instantiation"fun" :: (AOT_Term_id_2, AOT_subst) AOT_subst begin
proof
fix ψ χ :: ‹'a ==> 'b›
assume ‹AOT_subst φ›
moreover assume cond: ‹AOT_subst_cond ψ χ›
java.lang.NullPointerException
proof(induct)
case (AOT_subst_fun_const ψ)
then show ?case by (simp add: "oth-class-taut:3:a")
next
case (AOT_subst_fun_id Ψ x)
then show ?case by (simp add: AOT_subst AOT_subst_cond_fun_def)
next
next
case (AOT_subst_fun_all Ψ Θ)
java.lang.NullPointerException
using AOT_subst_fun_all.hyps(3) AOT_subst_fun_all.prems RN by presburger
thusa "t (frtip) = val
by (simp add: RN "rule-sub-lem:1:d"
AOT_subst_cond_fun_def AOT_subst_cond_\<ofixes
next
case (AOT_subst_fun_not Ψ
(sip add: : RN "rue-sub-lem:1:1:a")
next
case (AOT_subst_fun_imp Ψ Θ)
then show ?case
unfolding AOT_subst_cond_fun_def AOT_subst_cond_o_def
by (meson "≡E"(5) "oth-class-taut:4:c" "oth-class-taut:4:d" "→E")
next \>d<>(
Andd . dip\in(rt) \Longrightarrow \<i\
next
case (AOT_subst_fun_act Θ)
then show ?case by (simp add: RN "rule-sub-lem:1:f")
(OT_s \<>)
then show ?case by (simp add: RN "rule-sub-lem:1:g")
next
case (AOT_subst_fun_def Θ(rt)"
then show ?case
by (meson "df-rules-formulas[3]" "df-rules-formulas[4]" "≡I" "≡E"(5))
qed
‹
prove_AOT_subst_tac ctxt = REPEAT (SUBGOAL (fn (trm,_) => let
fun findHeadConst (Const x) = SOME x
| findHeadCon (A $ _) = findHeadCo A
fun findDef (Const (const_name
= findHeadConst lhs
| findDef (A $ B) = (case findDef A of SOME x => SOME x | _ => findDef B)
| findDef (Abs (_,_,c)) = findDef c
val const_opt = (findDef trm)
val defs = case const_opt of SOME const => List.filter (fn thm => let
val concl = Thm.concl_of thm
val thmconst = (findDef concl)
in case thmconst of SOME (c,_) => fst const = c | _ => false end)
(AOT_Definitions.get ctxt)
| _ => []
val tac = case defs of
]=> safe_s(ctxt addS@{thms AOT_s}) 1
| _ => resolve_tac ctxt defs 1
in tac end) 1)
getSubstThm ctxt reversed phi p q = let
abs = HOLogic.mk_Trueprop (@{const AOT_subst(_)} $ phi)
abs = Syntax.check_term ctxt abs
substThm = Goal.prove ctxt [] [] abs
= pr=_}=> provctxt)
substThm = substThm RS @{thm AOT_subst}
if reversed then let
val substThm = Drule.instantiate_normalize
(TVars.empty, Vars.make [((("χ
((("ψ", 0), p_ty), Thm.cterm_of ctxt q)]) substThm
val substThm = substThm RS @{thm "≡
in substThm end
let
val substThm = Drule.instantiate_normalize
(TVars.empty, Vars.make [((("ψ rrt pr ip dip
((("χ", 0), p_ty), Thm.cterm_of ctxt q)]) substThm
val substThm = substThm RS @{thm "≡E"(2)}
in substThm end end ›
thms = prems
ctxt' = ctxt
ctxt = Context_Position.set_visible false ctxt "sqn rt ip = ds = dsn"
raw_bounds = case raw_bounds of SOME bounds => bounds | _ => []
ctxt = (fold (fn (bound, ty) => fn ctxt =>
let
val bound = AOT_read_term @{nonterminal τ'} ctxt bound
ty = Option.ma (Synreadctx) tty
val ctxt = case ty of SOME ty => let
val bound = Const ("_type_constraint_", Type ("fun", [ty,ty])) $ bound
val bound = Syntax.check_term ctxt bound
in Variable.declare_term bound ctxt end | _ => ctxt
in ctxt end)) raw_bounds ctxt
p = AOT_read_term @{nonterminal φpi>\^(r)= 0=(\<i<
p = Syntax.check_term ctxt p
ctxt = Variable.declare_term p ctxt
q = AOT_read_term @{nonterminal φ'} ctxt raw_q
q Syntax.check_term ctxt q
ctxt = Variable.declare_term q ctxt
bounds = (map (fn (bound, _) =>
Syntax.check_term ctxt (AOT_read_term @{nonterminal τ'} ctxt bound)
) raw_bounds
p = fold (fn bound => fn p => \alpha,Term.type_of bo bound) (Term.abstract_(bound,,p)))
bounds p
p = Syntax.check_term ctxt p
Termtp
pat = @{const Trueprop} $
(@{const AOT_model_valid_in} $ Var (("w",0), @{typ w}) $
Var ((\phi,0), Type (\ 🍋
un
val univ = hd (Seq.list_of univ) (* TODO: consider all matches *)
valroutertip
(("φ
"KBasic2:1": ‹◻ obta v whe "rt dip = Some v" by ( (metis not_None_e)
by (meson "conventions:5" "contraposition:2"
"Hypothetical Syllogism" "df-rules-formulas[3]" qed
"df-rules-formulas[4]" "≡I" "useful-tautologies:1")
"KBasic2:2": ‹♢(φ ∨ ψ) ≡ (♢φ ∨♢ψ)›
-
AOT_have ‹
by (simp add: "RE♢" "oth-class-taut:5:b")
also AOT_have ‹…≡¬◻(¬
using "KBasic:11" "≡E"(6) "oth-class-taut:3:a" by blast
also AOT_have ‹…≡¬(◻¬φ & ◻¬ψ)›
using "KBasic:3" "≡E"(1) "oth-class-taut:4:b" by blast
also AOT_have ‹…
using "KBasic2:1"
by (AOT_subst ‹◻¬φ"1\<>hops
auto simp: "oth-class-taut:3:a")
also AOT_have ‹clarsimps: optionspl) auto
using "≡E"(6) "oth-class-taut:3:b" "oth-class-taut:5:b" by blast
also AOT_have ‹…≡♢φ ∨♢ψ›
by (simp add: "≡I" "useful-tautologies:1" "useful-tautologies:2")
finally show ?thesis .
(rule "→I")
AOT_assume ‹♢◻φ›
AOT_hence ‹¬ nh, {})) ip) = nhip"
using "KBasic:14" "≡E"(4) "raa-cor:3" by blast
moreover AOT_have ‹
by (fact "qml:3"[axiom_inst])
ultimately AOT_have ‹¬♢¬φ›
using "modus-tollens:1" by blast
AOT_thus ‹
"5♢" = "T-S5-fund:2"
"Act-Sub:1": ‹\
by (AOT_subst ‹
(auto simp: "logic-actual-nec:1"[axiom_inst] "oth-class-taut:3:b")
"Act-Sub:2": ‹
using "conventions:5"[THEN "≡Df"]
by (AOT_subst ‹♢φ›‹
(met
"logic-actual-nec:1"[axiom_inst] "qml-act:2"[axiom_inst])
"Act-Sub:3": ‹\Aφ →♢φ›
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
by (AOT_subst ‹♢φ›‹
(metis "Act-Sub:1" "→I" "≡E"(4) "nec-imp-act" "reductio-aa:2" "→E")
"Act-Sub:4": ‹
(rule "≡I"; rule "→I")
AOT_assume ‹
AOT_thus ‹♢\Aφ› using "T♢" "vdash-properties:10" by blast
AOT_assume ‹
AOT_hence ‹¬◻¬\Aφ›) \ nr=d')
using "≡dfE" "conventions:5" by blast
AOT_hence ‹¬◻\A¬φ›
by (AOT_subst ‹ invalidate :: "rt \<>
(simp add: "logic-actual-nec:1"[axiom_inst])
java.lang.NullPointerException
using "Act-Basic:1" "Act-Basic:6" "∨E"(3
"reductio-Some (rsn,dsk, in, hops, , )"
"Act-Sub:5": ‹♢\Aφ →\A♢ invby (clarsi s option.sp
by (metis "Act-Sub:2" "Act-Sub:3" "Act-Sub:4" "→
"S5Basic:1": ‹♢φ ≡◻♢φ›
by (simp add: "≡I" "qml:2"[axiom_inst] "qml:3"[axiom_inst])
"S5Basic:2": ‹dests)dip)))= \pi^s>6(te (rt di))"
by (simp add: "T♢" "5♢" "≡
"S5Basic:3": ‹φ →◻♢φ›
using "T♢" "Hypothetical Syllogism" "qml:3"[axiom_inst] by blast
"B" = "S5Basic:3"
"S5Basic:4": ‹
using "5♢" "Hypothetical Syllogism" "qml:2"[axiom_inst] by blast
"B♢" = "S5Basic:4"
"S5Basic:5": ‹◻φ →◻ "dip∈
using "RM:1" "B" "5♢" "Hypothetical Syllogism" by blast
"4" = "S5Basic:5"
"S5Basic:6": ‹◻φ ≡◻◻φ›
by (simp add: "4" "≡I" "qml:2"[axiom_inst])
"S5Basic:11": ‹♢(φ & ♢ψ) ≡ (♢φ & ♢ψ)›dests dip of No ==>dip)) | Some rsn ==>
-
java.lang.NullPointerException
by (AOT_subst ‹
(auto simp: "oth-class-taut:5:a" "oth-class-taut:3:a")
also AOT_have ‹…≡♢¬(the (r (rt dip))
by (AOT_subst ‹◻¬
(auto simp: "KBasic2:1" "oth-class-taut:3:a")
also AOT_have ‹
using "KBasic:11" "≡E"(6) "oth-class-taut:3:a" by blast
also AOT_have ‹…≡) = π
using "S5Basic:9" "≡E"(1) "oth-class-taut:4:b" by blast
also AOT_have ‹…≡¬
using "KBasic2:1"
by (AOT_subst ‹◻¬φ
(auto simp: "oth-class-taut:3:a")
also AOT_have ‹…≡♢φ & ♢ψ›
using "≡
finally show ?thesis .
"S5Basic:12": ‹♢(φ & ◻ψ"rreqid rreq i \equiv.(ip, ) \<nrreqs
(rule "≡I"; rule "→
AOT_assume ‹♢(φ & ◻ψ)›
AOT_hence ‹♢φ & ♢◻ψ›
using "KBasic2:3" "vdash-properties:6" by blast
AOT_thus ‹♢φ & ◻ψ›_ _')🚫
using "5♢" "&I" "&E"(1) "&E"(2) "vdash-properties:6" by blast
AOT_have ‹◻item @{term "σ-fla
using assms by (rule "RM:1[prem]")
AOT_thus ‹⊨6-tu rather than
from_nat k" by (metis a from_nat_to_nat_id j_eq_k not_less_iff_gr_or_eq to_nat_le)
"derived-S5-rules:2":
assumes \< automaticallyrue
<><⊨◻φ →›(Gauss_Jord A) $ i else if i=ij then-1 else 0"], ruleconjI)
-
java.lang.NullPointerException
2prm]")
using "B♢
"BFs:1": ‹to_nat <Suck
-
OT_modally_strict dally_strict { {
AOT_have ‹
using "cqt-orig:3" by (rule "RM♢")
AOT_hence ‹♢∀α ◻φ{α} →∀α φ{α}›
using "B♢" "∀I" "→E" "→I" by metis
}
thus ?thesis
using "derived-S5-rules:1" by blast
"BF" = "BFs:1"
"BFs:2": ‹◻∀α φ{α} →∀α ◻φ{α}›
-
AOT_have ‹◻∀α φ{α} →◻φ{α}› for α
using RM "cqt-orig:3" by metis
thus ?thesis
using "cqt-orig:2"[THEN "→E"] "∀I" by metis
"CBF" = "BFs:2"
"BFs:3": ‹♢∃α φ{α} →∃α ♢φ{α}›
(rule "→I")
AOT_modally_strict {
AOT_have ‹◻∀α ¬φ{α} ≡∀α ◻¬φ{α}›
using BF CBF "≡I" by blast
} note θ = this
AOT_assume ‹♢∃α φ{α}›
AOT_hence ‹¬◻¬(∃α φ{α})›
using "≡dfE" "conventions:5" by blast
AOT_hence ‹¬◻∀α ¬φ{α}›
apply (AOT_subst ‹∀α ¬φ{α}›‹¬(∃α φ{α})›)
using "≡dfI" "conventions:3" "conventions:4" "&I"
"contraposition:2" "cqt-further:4"
"df-rules-formulas[3]" by blast
AOT_hence ‹¬∀α ◻¬φ{α}›
apply (AOT_subst (reverse) ‹∀α ◻¬φ{α}›‹◻∀α ¬φ{α}›)
using θ by blast
AOT_hence ‹¬∀α ¬¬◻¬φ{α}›
by (AOT_subst (reverse) ‹¬¬◻¬φ{α}›‹◻¬φ{α}› for: α)
(simp add: "oth-class-taut:3:b")
AOT_hence ‹∃α ¬◻¬φ{α}›
by (rule "conventions:4"[THEN "≡dfI"])
AOT_thus ‹∃α ♢φ{α}›
using "conventions:5"[THEN "≡Df"]
by (AOT_subst ‹♢φ{α}›‹¬◻¬φ{α}› for: α)
"BF♢" = "BFs:3"
"BFs:4": ‹∃α ♢φ{α} →♢∃α φ{α}›
(rule "→I")
AOT_assume ‹∃α ♢φ{α}›
AOT_hence ‹¬∀α ¬♢φ{α}›
using "conventions:4"[THEN "≡dfE"] by blast
AOT_hence ‹¬∀α ◻¬φ{α}›
using "KBasic2:1"
by (AOT_subst ‹◻¬φ{α}›‹¬♢φ{α}› for: α)
moreover AOT_have ‹∀α ◻¬φ{α} ≡◻∀α ¬φ{α}›
using "≡I" "BF" "CBF" by metis
ultimately AOT_have 1: ‹¬◻∀α ¬φ{α}›
using "≡E"(3) by blast
AOT_show ‹♢∃α φ{α}›
apply (rule "conventions:5"[THEN "≡dfI"])
apply (AOT_subst ‹∃α φ{α}›‹¬∀α ¬φ{α}›)
apply (simp add: "conventions:4" "≡Df")
apply (AOT_subst ‹¬¬∀α ¬φ{α}›‹∀α ¬φ{α}›)
by (auto simp: 1 "≡I" "useful-tautologies:1" "useful-tautologies:2")
"CBF♢" = "BFs:4"
"sign-S5-thm:1": ‹∃α ◻φ{α} →◻∃α φ{α}›
(rule "→I")
AOT_assume ‹∃α ◻φ{α}›
then AOT_obtain α where ‹◻φ{α}› using "∃E" by metis
moreover AOT_have ‹◻α↓›
by (simp add: "ex:1:a" "rule-ui:2[const_var]" RN)
moreover AOT_have ‹◻φ{τ}, ◻τ↓\⊨\◻◻∃α φ{α}› for τ
proof -
AOT_have ‹φ{τ}, τ↓\⊨\◻∃α φ{α}› using "existential:1" by blast
AOT_thus ‹◻φ{τ}, ◻τ↓\⊨\◻◻∃α φ{α}›
using "RN[prem]"[where Γ="{φ τ, «τ↓¬}", simplified] by blast
qed
ultimately AOT_show ‹◻∃α φ{α}› by blast
Buridan = "sign-S5-thm:1"
"sign-S5-thm:2": ‹♢∀α φ{α} →∀α ♢φ{α}›
-
AOT_have ‹∀α (♢∀α φ{α} →♢φ{α})›
by (simp add: "RM♢" "cqt-orig:3" "∀I")
AOT_thus ‹♢∀α φ{α} →∀α ♢φ{α}›
using "∀E"(4) "∀I" "→E" "→I" by metis
"sc-eq-fur:3": ‹◻∀x (φ{x} →◻φ{x}) → (∃!x φ{x} →\ιx φ{x}↓)›
(rule "→I"; rule "→I")
AOT_assume ‹◻∀x (φ{x} →◻φ{x})›
AOT_hence A: ‹∀x ◻(φ{x} →◻φ{x})›
using CBF "→E" by blast
AOT_assume ‹∃!x φ{x}›
then AOT_obtain a where a_def: ‹φ{a} & ∀y (φ{y} → y = a)›
using "∃E"[rotated 1, OF "uniqueness:1"[THEN "≡dfE"]] by blast
moreover AOT_have ‹◻φ{a}›
using calculation A "∀E"(2) "qml:2"[axiom_inst] "→E" "&E"(1) by blast
AOT_hence ‹\Aφ{a}›
using "nec-imp-act" "→E" by blast
moreover AOT_have ‹∀y (\Aφ{y} → y = a)›
proof (rule "∀I"; rule "→I")
fix b
AOT_assume ‹\Aφ{b}›
AOT_hence ‹♢φ{b}›
using "Act-Sub:3" "→E" by blast
moreover {
AOT_have ‹◻(φ{b} →◻φ{b})›
using A "∀E"(2) by blast
AOT_hence ‹♢φ{b} →◻φ{b}›
using "KBasic:13" "5♢" "Hypothetical Syllogism" "→E" by blast
}
ultimately AOT_have ‹◻φ{b}›
using "→E" by blast
AOT_hence ‹φ{b}›
using "qml:2"[axiom_inst] "→E" by blast
AOT_thus ‹b = a›
using a_def[THEN "&E"(2)] "∀E"(2) "→E" by blast
qed
ultimately AOT_have ‹\Aφ{a} & ∀y (\Aφ{y} → y = a)›
using "&I" by blast
AOT_hence ‹∃x (\Aφ{x} & ∀y (\Aφ{y} → y = x))›
using "∃I" by fast
AOT_hence ‹∃!x \Aφ{x}›
using "uniqueness:1"[THEN "≡dfI"] by fast
AOT_thus ‹\ιx φ{x}↓›
using "actual-desc:1"[THEN "≡E"(2)] by blast
"sc-eq-fur:4": ‹◻∀x (φ{x} →◻φ{x}) → (x = \ιx φ{x} ≡ (φ{x} & ∀z (φ{z} → z = x)))›
(rule "→I")
AOT_assume ‹◻∀x (φ{x} →◻φ{x})›
AOT_hence ‹∀x ◻(φ{x} →◻φ{x})›
using CBF "→E" by blast
AOT_hence A: ‹\Aφ{α} ≡ φ{α}› for α
using "sc-eq-fur:2" "∀E" "→E" by fast
AOT_show ‹x = \ιx φ{x} ≡ (φ{x} & ∀z (φ{z} → z = x))›
proof (rule "≡I"; rule "→I")
AOT_assume ‹x = \ιx φ{x}›
AOT_hence B: ‹\Aφ{x} & ∀z (\Aφ{z} → z = x)›
using "nec-hintikka-scheme"[THEN "≡E"(1)] by blast
AOT_show ‹φ{x} & ∀z (φ{z} → z = x)›
proof (rule "&I"; (rule "∀I"; rule "→I")?)
AOT_show ‹φ{x}›
using A B[THEN "&E"(1)] "≡E"(1) by blast
next
AOT_show ‹z = x› if ‹φ{z}› for z
using that B[THEN "&E"(2)] "∀E"(2) "→E" A[THEN "≡E"(2)] by blast
qed
next
AOT_assume B: ‹φ{x} & ∀z (φ{z} → z = x)›
AOT_have ‹\Aφ{x} & ∀z (\Aφ{z} → z = x)›
proof(rule "&I"; (rule "∀I"; rule "→I")?)
AOT_show ‹\Aφ{x}›
using B[THEN "&E"(1)] A[THEN "≡E"(2)] by blast
next
AOT_show ‹b = x› if ‹\Aφ{b}› for b
using A[THEN "≡E"(1)] that
B[THEN "&E"(2), THEN "∀E"(2), THEN "→E"] by blast
qed
AOT_thus ‹x = \ιx φ{x}›
using "nec-hintikka-scheme"[THEN "≡E"(2)] by blast
qed
"id-act-desc:1": ‹\ιx (x = y)↓›
(rule "existence:1"[THEN "≡dfI"]; rule "∃I")
AOT_show ‹[λx E!x → E!x]\ιx (x = y)›
proof (rule "russell-axiom[exe,1].nec-russell-axiom"[THEN "≡E"(2)];
rule "∃I"; (rule "&I")+)
AOT_show ‹\Ay = y› by (simp add: "RA[2]" "id-eq:1")
next
AOT_show ‹∀z (\Az = y → z = y)›
apply (rule "∀I")
using "id-act:1"[THEN "≡E"(2)] "→I" by blast
next
AOT_show ‹[λx E!x → E!x]y›
proof (rule "lambda-predicates:2"[axiom_inst, THEN "→E", THEN "≡E"(2)])
AOT_show ‹[λx E!x → E!x]↓›
by "cqt:2[lambda]"
next
AOT_show ‹E!y → E!y›
by (simp add: "if-p-then-p")
qed
qed
AOT_show ‹[λx E!x → E!x]↓›
by "cqt:2[lambda]"
"id-act-desc:2": ‹y = \ιx (x = y)›
by (rule descriptions[axiom_inst, THEN "≡E"(2)];
rule "∀I"; rule "id-act:1"[symmetric])
"pre-en-eq:1[1]": ‹x1[F] →◻x1[F]›
by (simp add: encoding "vdash-properties:1[2]")
"pre-en-eq:1[2]": ‹x1x2[F] →◻x1x2[F]›
(rule "→I")
AOT_assume ‹x1x2[F]›
AOT_hence ‹x1[λy [F]yx2]› and ‹x2[λy [F]x1y]›
using "nary-encoding[2]"[axiom_inst, THEN "≡E"(1)] "&E" by blast+
moreover AOT_have ‹[λy [F]yx2]↓› by "cqt:2"
moreover AOT_have ‹[λy [F]x1y]↓› by "cqt:2"
ultimately AOT_have ‹◻x1[λy [F]yx2]› and ‹◻x2[λy [F]x1y]›
using encoding[axiom_inst, unvarify F] "→E" "&I" by blast+
note A = this
AOT_hence ‹◻(x1[λy [F]yx2] & x2[λy [F]x1y])›
using "KBasic:3"[THEN "≡E"(2)] "&I" by blast
AOT_thus ‹◻x1x2[F]›
by (rule "nary-encoding[2]"[axiom_inst, THEN RN,
THEN "KBasic:6"[THEN "→E"],
THEN "≡E"(2)])
"pre-en-eq:1[3]": ‹x1x2x3[F] →◻x1x2x3[F]›
(rule "→I")
AOT_assume ‹x1x2x3[F]›
AOT_hence ‹x1[λy [F]yx2x3]›
and ‹x2[λy [F]x1yx3]›
and ‹x3[λy [F]x1x2y]›
using "nary-encoding[3]"[axiom_inst, THEN "≡E"(1)] "&E" by blast+
moreover AOT_have ‹[λy [F]yx2x3]↓› by "cqt:2"
moreover AOT_have ‹[λy [F]x1yx3]↓› by "cqt:2"
moreover AOT_have ‹[λy [F]x1x2y]↓› by "cqt:2"
ultimately AOT_have ‹◻x1[λy [F]yx2x3]›
and ‹◻x2[λy [F]x1yx3]›
and ‹◻x3[λy [F]x1x2y]›
using encoding[axiom_inst, unvarify F] "→E" by blast+
note A = this
AOT_have B: ‹◻(x1[λy [F]yx2x3] & x2[λy [F]x1yx3] & x3[λy [F]x1x2y])›
by (rule "KBasic:3"[THEN "≡E"(2)] "&I" A)+
AOT_thus ‹◻x1x2x3[F]›
by (rule "nary-encoding[3]"[axiom_inst, THEN RN,
THEN "KBasic:6"[THEN "→E"], THEN "≡E"(2)])
"pre-en-eq:1[4]": ‹x1x2x3x4[F] →◻x1x2x3x4[F]›
(rule "→I")
AOT_assume ‹x1x2x3x4[F]›
AOT_hence ‹x1[λy [F]yx2x3x4]›
and ‹x2[λy [F]x1yx3x4]›
and ‹x3[λy [F]x1x2yx4]›
and ‹x4[λy [F]x1x2x3y]›
using "nary-encoding[4]"[axiom_inst, THEN "≡E"(1)] "&E" by metis+
moreover AOT_have ‹[λy [F]yx2x3x4]↓› by "cqt:2"
moreover AOT_have ‹[λy [F]x1yx3x4]↓› by "cqt:2"
moreover AOT_have ‹[λy [F]x1x2yx4]↓› by "cqt:2"
moreover AOT_have ‹[λy [F]x1x2x3y]↓› by "cqt:2"
ultimately AOT_have ‹◻x1[λy [F]yx2x3x4]›
and ‹◻x2[λy [F]x1yx3x4]›
and ‹◻x3[λy [F]x1x2yx4]›
and ‹◻x4[λy [F]x1x2x3y]›
using "→E" encoding[axiom_inst, unvarify F] by blast+
note A = this
AOT_have B: ‹◻(x1[λy [F]yx2x3x4] &
x2[λy [F]x1yx3x4] &
x3[λy [F]x1x2yx4] &
x4[λy [F]x1x2x3y])›
by (rule "KBasic:3"[THEN "≡E"(2)] "&I" A)+
AOT_thus ‹◻x1x2x3x4[F]›
by (rule "nary-encoding[4]"[axiom_inst, THEN RN,
THEN "KBasic:6"[THEN "→E"], THEN "≡E"(2)])
"pre-en-eq:2[1]": ‹¬x1[F] →◻¬x1[F]›
(rule "→I"; rule "raa-cor:1")
AOT_assume ‹¬◻¬x1[F]›
AOT_hence ‹♢x1[F]›
by (rule "conventions:5"[THEN "≡dfI"])
AOT_hence ‹x1[F]›
by(rule "S5Basic:13"[THEN "≡E"(1), OF "pre-en-eq:1[1]"[THEN RN],
THEN "qml:2"[axiom_inst, THEN "→E"], THEN "→E"])
moreover AOT_assume ‹¬x1[F]›
ultimately AOT_show ‹x1[F] & ¬x1[F]› by (rule "&I")
"pre-en-eq:2[2]": ‹¬x1x2[F] →◻¬x1x2[F]›
(rule "→I"; rule "raa-cor:1")
AOT_assume ‹¬◻¬x1x2[F]›
AOT_hence ‹♢x1x2[F]›
by (rule "conventions:5"[THEN "≡dfI"])
AOT_hence ‹x1x2[F]›
by(rule "S5Basic:13"[THEN "≡E"(1), OF "pre-en-eq:1[2]"[THEN RN],
THEN "qml:2"[axiom_inst, THEN "→E"], THEN "→E"])
moreover AOT_assume ‹¬x1x2[F]›
ultimately AOT_show ‹x1x2[F] & ¬x1x2[F]› by (rule "&I")
"pre-en-eq:2[3]": ‹¬x1x2x3[F] →◻¬x1x2x3[F]›
(rule "→I"; rule "raa-cor:1")
AOT_assume ‹¬◻¬x1x2x3[F]›
AOT_hence ‹♢x1x2x3[F]›
by (rule "conventions:5"[THEN "≡dfI"])
AOT_hence ‹x1x2x3[F]›
by(rule "S5Basic:13"[THEN "≡E"(1), OF "pre-en-eq:1[3]"[THEN RN],
THEN "qml:2"[axiom_inst, THEN "→E"], THEN "→E"])
moreover AOT_assume ‹¬x1x2x3[F]›
ultimately AOT_show ‹x1x2x3[F] & ¬x1x2x3[F]› by (rule "&I")
"pre-en-eq:2[4]": ‹¬x1x2x3x4[F] →◻¬x1x2x3x4[F]›
(rule "→I"; rule "raa-cor:1")
AOT_assume ‹¬◻¬x1x2x3x4[F]›
AOT_hence ‹♢x1x2x3x4[F]›
by (rule "conventions:5"[THEN "≡dfI"])
AOT_hence ‹x1x2x3x4[F]›
by(rule "S5Basic:13"[THEN "≡E"(1), OF "pre-en-eq:1[4]"[THEN RN],
THEN "qml:2"[axiom_inst, THEN "→E"], THEN "→E"])
moreover AOT_assume ‹¬x1x2x3x4[F]›
ultimately AOT_show ‹x1x2x3x4[F] & ¬x1x2x3x4[F]› by (rule "&I")
"en-eq:1[1]": ‹♢x1[F] ≡◻x1[F]›
using "pre-en-eq:1[1]"[THEN RN] "sc-eq-box-box:2" "∨I" "→E" by metis
"en-eq:1[2]": ‹♢x1x2[F] ≡◻x1x2[F]›
using "pre-en-eq:1[2]"[THEN RN] "sc-eq-box-box:2" "∨I" "→E" by metis
"en-eq:1[3]": ‹♢x1x2x3[F] ≡◻x1x2x3[F]›
using "pre-en-eq:1[3]"[THEN RN] "sc-eq-box-box:2" "∨I" "→E" by fast
"en-eq:1[4]": ‹♢x1x2x3x4[F] ≡◻x1x2x3x4[F]›
using "pre-en-eq:1[4]"[THEN RN] "sc-eq-box-box:2" "∨I" "→E" by fast
"en-eq:2[1]": ‹x1[F] ≡◻x1[F]›
by (simp add: "≡I" "pre-en-eq:1[1]" "qml:2"[axiom_inst])
"en-eq:2[2]": ‹x1x2[F] ≡◻x1x2[F]›
by (simp add: "≡I" "pre-en-eq:1[2]" "qml:2"[axiom_inst])
"en-eq:2[3]": ‹x1x2x3[F] ≡◻x1x2x3[F]›
by (simp add: "≡I" "pre-en-eq:1[3]" "qml:2"[axiom_inst])
"en-eq:2[4]": ‹x1x2x3x4[F] ≡◻x1x2x3x4[F]›
by (simp add: "≡I" "pre-en-eq:1[4]" "qml:2"[axiom_inst])
"en-eq:3[1]": ‹♢x1[F] ≡ x1[F]›
using "T♢" "derived-S5-rules:2"[OF "pre-en-eq:1[1]"] "≡I" by blast
"en-eq:3[2]": ‹♢x1x2[F] ≡ x1x2[F]›
using "T♢" "derived-S5-rules:2"[OF "pre-en-eq:1[2]"] "≡I" by blast
"en-eq:3[3]": ‹♢x1x2x3[F] ≡ x1x2x3[F]›
using "T♢" "derived-S5-rules:2"[OF "pre-en-eq:1[3]"] "≡I" by blast
"en-eq:3[4]": ‹♢x1x2x3x4[F] ≡ x1x2x3x4[F]›
using "T♢" "derived-S5-rules:2"[OF "pre-en-eq:1[4]"] "≡I" by blast
"en-eq:4[1]": ‹(x1[F] ≡ y1[G]) ≡ (◻x1[F] ≡◻y1[G])›
apply (rule "≡I"; rule "→I"; rule "≡I"; rule "→I")
using "qml:2"[axiom_inst, THEN "→E"] "≡E"(1,2) "en-eq:2[1]" by blast+
"en-eq:4[2]": ‹(x1x2[F] ≡ y1y2[G]) ≡ (◻x1x2[F] ≡◻y1y2[G])›
apply (rule "≡I"; rule "→I"; rule "≡I"; rule "→I")
using "qml:2"[axiom_inst, THEN "→E"] "≡E"(1,2) "en-eq:2[2]" by blast+
"en-eq:4[3]": ‹(x1x2x3[F] ≡ y1y2y3[G]) ≡ (◻x1x2x3[F] ≡◻y1y2y3[G])›
apply (rule "≡I"; rule "→I"; rule "≡I"; rule "→I")
using "qml:2"[axiom_inst, THEN "→E"] "≡E"(1,2) "en-eq:2[3]" by blast+
"en-eq:4[4]": ‹(x1x2x3x4[F] ≡ y1y2y3y4[G]) ≡ (◻x1x2x3x4[F] ≡◻y1y2y3y4[G])›
apply (rule "≡I"; rule "→I"; rule "≡I"; rule "→I")
using "qml:2"[axiom_inst, THEN "→E"] "≡E"(1,2) "en-eq:2[4]" by blast+
"en-eq:5[1]": ‹◻(x1[F] ≡ y1[G]) ≡ (◻x1[F] ≡◻y1[G])›
apply (rule "≡I"; rule "→I")
using "en-eq:4[1]"[THEN "≡E"(1)] "qml:2"[axiom_inst, THEN "→E"]
apply blast
using "sc-eq-box-box:4"[THEN "→E", THEN "→E"]
"&I"[OF "pre-en-eq:1[1]"[THEN RN], OF "pre-en-eq:1[1]"[THEN RN]]
by blast
"en-eq:5[2]": ‹◻(x1x2[F] ≡ y1y2[G]) ≡ (◻x1x2[F] ≡◻y1y2[G])›
apply (rule "≡I"; rule "→I")
using "en-eq:4[2]"[THEN "≡E"(1)] "qml:2"[axiom_inst, THEN "→E"]
apply blast
using "sc-eq-box-box:4"[THEN "→E", THEN "→E"]
"&I"[OF "pre-en-eq:1[2]"[THEN RN], OF "pre-en-eq:1[2]"[THEN RN]]
by blast
"en-eq:5[3]": ‹◻(x1x2x3[F] ≡ y1y2y3[G]) ≡ (◻x1x2x3[F] ≡◻y1y2y3[G])›
apply (rule "≡I"; rule "→I")
using "en-eq:4[3]"[THEN "≡E"(1)] "qml:2"[axiom_inst, THEN "→E"]
apply blast
using "sc-eq-box-box:4"[THEN "→E", THEN "→E"]
"&I"[OF "pre-en-eq:1[3]"[THEN RN], OF "pre-en-eq:1[3]"[THEN RN]]
by blast
"en-eq:5[4]": ‹◻(x1x2x3x4[F] ≡ y1y2y3y4[G]) ≡ (◻x1x2x3x4[F] ≡◻y1y2y3y4[G])›
apply (rule "≡I"; rule "→I")
using "en-eq:4[4]"[THEN "≡E"(1)] "qml:2"[axiom_inst, THEN "→E"]
apply blast
using "sc-eq-box-box:4"[THEN "→E", THEN "→E"]
"&I"[OF "pre-en-eq:1[4]"[THEN RN], OF "pre-en-eq:1[4]"[THEN RN]]
by blast
"en-eq:6[1]": ‹(x1[F] ≡ y1[G]) ≡◻(x1[F] ≡ y1[G])›
using "en-eq:5[1]"[symmetric] "en-eq:4[1]" "≡E"(5) by fast
"en-eq:6[2]": ‹(x1x2[F] ≡ y1y2[G]) ≡◻(x1x2[F] ≡ y1y2[G])›
using "en-eq:5[2]"[symmetric] "en-eq:4[2]" "≡E"(5) by fast
"en-eq:6[3]": ‹(x1x2x3[F] ≡ y1y2y3[G]) ≡◻(x1x2x3[F] ≡ y1y2y3[G])›
using "en-eq:5[3]"[symmetric] "en-eq:4[3]" "≡E"(5) by fast
"en-eq:6[4]": ‹(x1x2x3x4[F] ≡ y1y2y3y4[G]) ≡◻(x1x2x3x4[F] ≡ y1y2y3y4[G])›
using "en-eq:5[4]"[symmetric] "en-eq:4[4]" "≡E"(5) by fast
"en-eq:7[1]": ‹¬x1[F] ≡◻¬x1[F]›
using "pre-en-eq:2[1]" "qml:2"[axiom_inst] "≡I" by blast
"en-eq:7[2]": ‹¬x1x2[F] ≡◻¬x1x2[F]›
using "pre-en-eq:2[2]" "qml:2"[axiom_inst] "≡I" by blast
"en-eq:7[3]": ‹¬x1x2x3[F] ≡◻¬x1x2x3[F]›
using "pre-en-eq:2[3]" "qml:2"[axiom_inst] "≡I" by blast
"en-eq:7[4]": ‹¬x1x2x3x4[F] ≡◻¬x1x2x3x4[F]›
using "pre-en-eq:2[4]" "qml:2"[axiom_inst] "≡I" by blast
"en-eq:8[1]": ‹♢¬x1[F] ≡¬x1[F]›
using "en-eq:2[1]"[THEN "oth-class-taut:4:b"[THEN "≡E"(1)]]
"KBasic:11" "≡E"(5)[symmetric] by blast
"en-eq:8[2]": ‹♢¬x1x2[F] ≡¬x1x2[F]›
using "en-eq:2[2]"[THEN "oth-class-taut:4:b"[THEN "≡E"(1)]]
"KBasic:11" "≡E"(5)[symmetric] by blast
"en-eq:8[3]": ‹♢¬x1x2x3[F] ≡¬x1x2x3[F]›
using "en-eq:2[3]"[THEN "oth-class-taut:4:b"[THEN "≡E"(1)]]
"KBasic:11" "≡E"(5)[symmetric] by blast
"en-eq:8[4]": ‹♢¬x1x2x3x4[F] ≡¬x1x2x3x4[F]›
using "en-eq:2[4]"[THEN "oth-class-taut:4:b"[THEN "≡E"(1)]]
"KBasic:11" "≡E"(5)[symmetric] by blast
"en-eq:9[1]": ‹♢¬x1[F] ≡◻¬x1[F]›
using "en-eq:7[1]" "en-eq:8[1]" "≡E"(5) by blast
"en-eq:9[2]": ‹♢¬x1x2[F] ≡◻¬x1x2[F]›
using "en-eq:7[2]" "en-eq:8[2]" "≡E"(5) by blast
"en-eq:9[3]": ‹♢¬x1x2x3[F] ≡◻¬x1x2x3[F]›
using "en-eq:7[3]" "en-eq:8[3]" "≡E"(5) by blast
"en-eq:9[4]": ‹♢¬x1x2x3x4[F] ≡◻¬x1x2x3x4[F]›
using "en-eq:7[4]" "en-eq:8[4]" "≡E"(5) by blast
(* Note: generalized alphabetic variant of the last theorem *)
AOT_theorem "eta-conversion-lemma1:2": ‹Π↓→ [λν1...νn [Π]ν1...νn] = Π› using"eta-conversion-lemma1:1".
text‹Note: not explicitly part of PLM.›
AOT_theorem id_sym: assumes‹τ = τ'› shows‹τ' = τ› using"rule=E"[where φ="λ τ' . «τ' = τ¬", rotated 1, OF assms] "=I"(1)[OF "t=t-proper:1"[THEN"→E", OF assms]] by auto declare id_sym[sym]
text‹Note: not explicitly part of PLM.›
AOT_theorem id_trans: assumes‹τ = τ'›and‹τ' = τ''› shows‹τ = τ''› using"rule=E" assms by blast declare id_trans[trans]
method"ηC"for Π :: ‹<'a::{AOT_Term_id_2,AOT_κs}>› =
(match conclusion in"[v ⊨ τ{Π} = τ'{Π}]"for v τ τ' ==>‹
rule "rule=E"[rotated 1, OF "eta-conversion-lemma1:2"
[THEN "→E", of v "«[Π]¬", symmetric]]›)
AOT_theorem "block-paradox:1": ‹¬[λx ∃G (x[G] & ¬[G]x)]↓› proof(rule "raa-cor:2") let ?K="«[λx ∃G (x[G] & ¬[G]x)]¬"
AOT_assume A: ‹«?K¬↓›
AOT_have ‹∃x (A!x & ∀F (x[F] ≡ F = «?K¬))› using"A-objects"[axiom_inst] by fast then AOT_obtain a where ξ: ‹A!a & ∀F (a[F] ≡ F = «?K¬)› using"∃E"[rotated] by blast
AOT_show ‹p & ¬p›for p proof (rule "∨E"(1)[OF "exc-mid"]; rule "→I")
AOT_assume B: ‹[«?K¬]a›
AOT_hence ‹∃G (a[G] & ¬[G]a)› using"β→C" A by blast then AOT_obtain P where‹a[P] & ¬[P]a› using"∃E"[rotated] by blast moreover AOT_have ‹P = [«?K¬]› using ξ[THEN"&E"(2), THEN"∀E"(2), THEN"≡E"(1)]
calculation[THEN"&E"(1)] by blast ultimately AOT_have ‹¬[«?K¬]a› using"rule=E""&E"(2) by fast
AOT_thus ‹p & ¬p› using B RAA by blast next
AOT_assume B: ‹¬[«?K¬]a›
AOT_hence ‹¬∃G (a[G] & ¬[G]a)› using"β←C""cqt:2[const_var]"[of a, axiom_inst] A by blast
AOT_hence C: ‹∀G ¬(a[G] & ¬[G]a)› using"cqt-further:4"[THEN"→E"] by blast
AOT_have ‹∀G (a[G] → [G]a)› by (AOT_subst ‹a[G] → [G]a›‹¬(a[G] & ¬[G]a)›for: G)
(auto simp: "oth-class-taut:1:a" C)
AOT_hence ‹a[«?K¬] → [«?K¬]a› using"∀E" A by blast moreover AOT_have ‹a[«?K¬]› using ξ[THEN"&E"(2), THEN"∀E"(1), OF A, THEN"≡E"(2)] using"=I"(1)[OF A] by blast ultimately AOT_show ‹p & ¬p› using B "→E" RAA by blast qed qed
AOT_theorem "block-paradox:2": ‹¬∃F ∀x([F]x ≡∃G(x[G] & ¬[G]x))› proof(rule RAA(2))
AOT_assume ‹∃F ∀x ([F]x ≡∃G (x[G] & ¬[G]x))› then AOT_obtain F where F_prop: ‹∀x ([F]x ≡∃G (x[G] & ¬[G]x))› using"∃E"[rotated] by blast
AOT_have ‹∃x (A!x & ∀G (x[G] ≡ G = F))› using"A-objects"[axiom_inst] by fast then AOT_obtain a where ξ: ‹A!a & ∀G (a[G] ≡ G = F)› using"∃E"[rotated] by blast
AOT_show ‹¬∃F ∀x([F]x ≡∃G(x[G] & ¬[G]x))› proof (rule "∨E"(1)[OF "exc-mid"]; rule "→I")
AOT_assume B: ‹[F]a›
AOT_hence ‹∃G (a[G] & ¬[G]a)› using F_prop[THEN"∀E"(2), THEN"≡E"(1)] by blast then AOT_obtain P where‹a[P] & ¬[P]a› using"∃E"[rotated] by blast moreover AOT_have ‹P = F› using ξ[THEN"&E"(2), THEN"∀E"(2), THEN"≡E"(1)]
calculation[THEN"&E"(1)] by blast ultimately AOT_have ‹¬[F]a› using"rule=E""&E"(2) by fast
AOT_thus ‹¬∃F ∀x([F]x ≡∃G(x[G] & ¬[G]x))› using B RAA by blast next
AOT_assume B: ‹¬[F]a›
AOT_hence ‹¬∃G (a[G] & ¬[G]a)› using"oth-class-taut:4:b"[THEN"≡E"(1),
OF F_prop[THEN"∀E"(2)[of _ _ a]], THEN"≡E"(1)] by simp
AOT_hence C: ‹∀G ¬(a[G] & ¬[G]a)› using"cqt-further:4"[THEN"→E"] by blast
AOT_have ‹∀G (a[G] → [G]a)› by (AOT_subst ‹a[G] → [G]a›‹¬(a[G] & ¬[G]a)›for: G)
(auto simp: "oth-class-taut:1:a" C)
AOT_hence ‹a[F] → [F]a› using"∀E"by blast moreover AOT_have ‹a[F]› using ξ[THEN"&E"(2), THEN"∀E"(2), of F, THEN"≡E"(2)] using"=I"(2) by blast ultimately AOT_show ‹¬∃F ∀x([F]x ≡∃G(x[G] & ¬[G]x))› using B "→E" RAA by blast qed qed(simp)
AOT_theorem "block-paradox:3": ‹¬∀y [λz z = y]↓› proof(rule RAA(2))
AOT_assume θ: ‹∀y [λz z = y]↓›
AOT_have ‹∃x (A!x & ∀F (x[F] ≡∃y(F = [λz z = y] & style='font-size: 18px;'>¬y[F])))› using"A-objects"[axiom_inst] by force then AOT_obtain a where
a_prop: ‹A!a & ∀F (a[F] ≡∃y (F = [λz z = y] & e='font-size: 18px;'>¬y[F]))› using"∃E"[rotated] by blast
AOT_have ζ: ‹a[λz z = a] ≡∃y ([λz z = a] = [λz z = y] & ¬y[λz z = a])› using θ[THEN"∀E"(2)] a_prop[THEN"&E"(2), THEN"∀E"(1)] by blast
AOT_show ‹¬∀y [λz z = y]↓› proof (rule "∨E"(1)[OF "exc-mid"]; rule "→I")
AOT_assume A: ‹a[λz z = a]›
AOT_hence ‹∃y ([λz z = a] = [λz z = y] & ¬y[λz z = a])› using ζ[THEN"≡E"(1)] by blast then AOT_obtain b where b_prop: ‹[λz z = a] = [λz z = b] & ¬b[λz z = a]› using"∃E"[rotated] by blast moreover AOT_have ‹a = a›by (rule "=I") moreover AOT_have ‹[λz z = a]↓›using θ "∀E"by blast moreover AOT_have ‹a↓›using"cqt:2[const_var]"[axiom_inst] . ultimately AOT_have ‹[λz z = a]a›using"β←C"by blast
AOT_hence ‹[λz z = b]a›using"rule=E" b_prop[THEN"&E"(1)] by fast
AOT_hence ‹a = b›using"β→C"by blast
AOT_hence ‹b[λz z = a]›using A "rule=E"by fast
AOT_thus ‹¬∀y [λz z = y]↓›using b_prop[THEN"&E"(2)] RAA by blast next
AOT_assume A: ‹¬a[λz z = a]›
AOT_hence ‹¬∃y ([λz z = a] = [λz z = y] & ¬y[λz z = a])› using ζ "oth-class-taut:4:b"[THEN"≡E"(1), THEN"≡E"(1)] by blast
AOT_hence ‹∀y ¬([λz z = a] = [λz z = y] & ¬y[λz z = a])› using"cqt-further:4"[THEN"→E"] by blast
AOT_hence ‹¬([λz z = a] = [λz z = a] & ¬a[λz z = a])› using"∀E"by blast
AOT_hence ‹[λz z = a] = [λz z = a] → a[λz z = a]› by (metis "&I""deduction-theorem""raa-cor:4")
AOT_hence ‹a[λz z = a]›using"=I"(1) θ[THEN"∀E"(2)] "→E"by blast
AOT_thus ‹¬∀y [λz z = y]↓›using A RAA by blast qed qed(simp)
AOT_theorem "block-paradox:4": ‹¬∀y ∃F ∀x([F]x ≡ x = y)› proof(rule RAA(2))
AOT_assume θ: ‹∀y ∃F ∀x([F]x ≡ x = y)›
AOT_have ‹∃x (A!x & ∀F (x[F] ≡∃z (∀y([F]y ≡ y = z) & pan style='font-size: 18px;'>¬z[F])))› using"A-objects"[axiom_inst] by force then AOT_obtain a where
a_prop: ‹A!a & ∀F (a[F] ≡∃z (∀y([F]y ≡ y = z) & tyle='font-size: 18px;'>¬z[F]))› using"∃E"[rotated] by blast
AOT_obtain F where F_prop: ‹∀x ([F]x ≡ x = a)› using θ[THEN"∀E"(2)] "∃E"[rotated] by blast
AOT_have ζ: ‹a[F] ≡∃z (∀y ([F]y ≡ y = z) & ¬z[F])› using a_prop[THEN"&E"(2), THEN"∀E"(2)] by blast
AOT_show ‹¬∀y ∃F ∀x([F]x ≡ x = y)› proof (rule "∨E"(1)[OF "exc-mid"]; rule "→I")
AOT_assume A: ‹a[F]›
AOT_hence ‹∃z (∀y ([F]y ≡ y = z) & ¬z[F])› using ζ[THEN"≡E"(1)] by blast then AOT_obtain b where b_prop: ‹∀y ([F]y ≡ y = b) & ¬b[F]› using"∃E"[rotated] by blast moreover AOT_have ‹[F]a› using F_prop[THEN"∀E"(2), THEN"≡E"(2)] "=I"(2) by blast ultimately AOT_have ‹a = b› using"∀E"(2) "≡E"(1) "&E"by fast
AOT_hence ‹a = b› using"β→C"by blast
AOT_hence ‹b[F]› using A "rule=E"by fast
AOT_thus ‹¬∀y ∃F ∀x([F]x ≡ x = y)› using b_prop[THEN"&E"(2)] RAA by blast next
AOT_assume A: ‹¬a[F]›
AOT_hence ‹¬∃z (∀y ([F]y ≡ y = z) & ¬z[F])› using ζ "oth-class-taut:4:b"[THEN"≡E"(1), THEN"≡E"(1)] by blast
AOT_hence ‹∀z ¬(∀y ([F]y ≡ y = z) & ¬z[F])› using"cqt-further:4"[THEN"→E"] by blast
AOT_hence ‹¬(∀y ([F]y ≡ y = a) & ¬a[F])› using"∀E"by blast
AOT_hence ‹∀y ([F]y ≡ y = a) → a[F]› by (metis "&I""deduction-theorem""raa-cor:4")
AOT_hence ‹a[F]›using F_prop "→E"by blast
AOT_thus ‹¬∀y ∃F ∀x([F]x ≡ x = y)› using A RAA by blast qed qed(simp)
AOT_theorem "block-paradox:5": ‹¬∃F∀x∀y([F]xy ≡ y = x)› proof(rule "raa-cor:2")
AOT_assume ‹∃F∀x∀y([F]xy ≡ y = x)› then AOT_obtain F where F_prop: ‹∀x∀y([F]xy ≡ y = x)› using"∃E"[rotated] by blast
{ fix x
AOT_have 1: ‹∀y([F]xy ≡ y = x)› using F_prop "∀E"by blast
AOT_have 2: ‹[λz [F]xz]↓›by"cqt:2" moreover AOT_have ‹∀y([λz [F]xz]y ≡ y = x)› proof(rule "∀I") fix y
AOT_have ‹[λz [F]xz]y ≡ [F]xy› using"beta-C-meta"[THEN"→E"] 2by fast also AOT_have ‹... ≡ y = x› using1"∀E"by fast finally AOT_show ‹[λz [F]xz]y ≡ y = x›. qed ultimately AOT_have ‹∃F∀y([F]y ≡ y = x)› using"∃I"by fast
}
AOT_hence ‹∀x∃F∀y([F]y ≡ y = x)› by (rule GEN)
AOT_thus ‹∀x∃F∀y([F]y ≡ y = x) & ¬∀x∃F∀y([F]y ≡ y = x)› using"&I""block-paradox:4"by blast qed
AOT_act_theorem "block-paradox2:1": ‹∀x [G]x →¬[λx [G]\ιy (y = x & ∃H (x[H] & ¬[H]x))]↓› proof(rule "→I"; rule "raa-cor:2")
AOT_assume antecedant: ‹∀x [G]x›
AOT_have Lemma: ‹∀x ([G]\ιy(y = x & ∃H (x[H] & ='font-size: 18px;'>¬[H]x)) ≡∃H (x[H] & ¬[H]x))› proof(rule GEN) fix x
AOT_have A: ‹[G]\ιy (y = x & ∃H (x[H] & ¬[H]x)) ≡ ∃!y (y = x & ∃H (x[H] & ¬[H]x))› proof(rule "≡I"; rule "→I")
AOT_assume ‹[G]\ιy (y = x & ∃H (x[H] & ¬[H]x))›
AOT_hence ‹\ιy (y = x & ∃H (x[H] & ¬[H]x))↓› using"cqt:5:a"[axiom_inst, THEN"→E", THEN"&E"(2)] by blast
AOT_thus ‹∃!y (y = x & ∃H (x[H] & ¬[H]x))› using"!-exists:1"[THEN"≡E"(1)] by blast next
AOT_assume A: ‹∃!y (y = x & ∃H (x[H] & ¬[H]x))›
AOT_obtain a where a_1: ‹a = x & ∃H (x[H] & ¬[H]x)› and a_2: ‹∀z (z = x & ∃H (x[H] & ¬[H]x) → z = a)› using"uniqueness:1"[THEN"≡dfE", OF A] "&E""∃E"[rotated] by blast
AOT_have a_3: ‹[G]a› using antecedant "∀E"by blast
AOT_show ‹[G]\ιy (y = x & ∃H (x[H] & ¬[H]x))› apply (rule "russell-axiom[exe,1].russell-axiom"[THEN"≡E"(2)]) apply (rule "∃I"(2)) using a_1 a_2 a_3 "&I"by blast qed also AOT_have B: ‹... ≡∃H (x[H] & ¬[H]x)› proof (rule "≡I"; rule "→I")
AOT_assume A: ‹∃!y (y = x & ∃H (x[H] & ¬[H]x))›
AOT_obtain a where‹a = x & ∃H (x[H] & ¬[H]x)› using"uniqueness:1"[THEN"≡dfE", OF A] "&E""∃E"[rotated] by blast
AOT_thus ‹∃H (x[H] & ¬[H]x)›using"&E"by blast next
AOT_assume ‹∃H (x[H] & ¬[H]x)›
AOT_hence ‹x = x & ∃H (x[H] & ¬[H]x)› using"id-eq:1""&I"by blast moreover AOT_have ‹∀z (z = x & ∃H (x[H] & ¬[H]x) → z = x)› by (simp add: "Conjunction Simplification"(1) "universal-cor") ultimately AOT_show ‹∃!y (y = x & ∃H (x[H] & 'font-size: 18px;'>¬[H]x))› using"uniqueness:1"[THEN"≡dfI"] "&I""∃I"(2) by fast qed finally AOT_show ‹([G]\ιy(y = x & ∃H (x[H] & ¬[H]x)) ≡∃H (x[H] & ¬[H]x))› . qed
AOT_assume A: ‹[λx [G]\ιy (y = x & ∃H (x[H] & ¬[H]x))]↓›
AOT_have θ: ‹∀x ([λx [G]\ιy (y = x & ∃H (x[H] & 'font-size: 18px;'>¬[H]x))]x ≡
[G]\ιy(y = x & ∃H (x[H] & >¬[H]x)))› using"beta-C-meta"[THEN"→E", OF A] "∀I"by fast
AOT_have ‹∀x ([λx [G]\ιy (y = x & ∃H (x[H] & ¬[H]x))]x ≡∃H (x[H] & ¬[H]x))› using θ Lemma"cqt-basic:10"[THEN"→E"] "&I"by fast
AOT_hence ‹∃F ∀x ([F]x ≡∃H (x[H] & ¬[H]x))› using"∃I"(1) A by fast
AOT_thus ‹(∃F ∀x ([F]x ≡∃H (x[H] & ¬[H]x))) &
(¬∃F ∀x ([F]x ≡∃H (x[H] & ¬[H]x)))› using"block-paradox:2""&I"by blast qed
text‹Note: Strengthens the above to a modally-strict theorem.
Not explicitly part of PLM.›
AOT_theorem "block-paradox2:1[strict]": ‹∀x \A[G]x →¬[λx [G]\ιy (y = x & ∃H (x[H] & ¬[H]x))]↓› proof(rule "→I"; rule "raa-cor:2")
AOT_assume antecedant: ‹∀x \A[G]x›
AOT_have Lemma: ‹\A∀x ([G]\ιy(y = x & ∃H (x[H] & le='font-size: 18px;'>¬[H]x)) ≡∃H (x[H] & ¬[H]x))› proof(safe intro!: GEN "Act-Basic:5"[THEN"≡E"(2)] "logic-actual-nec:3"[axiom_inst, THEN"≡E"(2)]) fix x
AOT_have A: ‹\A[G]\ιy (y = x & ∃H (x[H] & ¬[H]x)) ≡ ∃!y \A(y = x & ∃H (x[H] & ¬[H]x))› proof(rule "≡I"; rule "→I")
AOT_assume ‹\A[G]\ιy (y = x & ∃H (x[H] & ¬[H]x))› moreover AOT_have ‹◻([G]\ιy (y = x & ∃H (x[H] & e='font-size: 18px;'>¬[H]x)) → ◻\ιy (y = x & ∃H (x[H] & ¬[H]x))↓)› proof(rule RN; rule "→I")
AOT_modally_strict {
AOT_assume ‹[G]\ιy (y = x & ∃H (x[H] & ¬[H]x))›
AOT_hence ‹\ιy (y = x & ∃H (x[H] & ¬[H]x))↓› using"cqt:5:a"[axiom_inst, THEN"→E", THEN"&E"(2)] by blast
AOT_thus ‹◻\ιy (y = x & ∃H (x[H] & ¬[H]x))↓› using"exist-nec"[THEN"→E"] by blast
} qed ultimately AOT_have ‹\A◻\ιy (y = x & ∃H (x[H] & e='font-size: 18px;'>¬[H]x))↓› using"act-cond"[THEN"→E", THEN"→E"] "nec-imp-act"[THEN"→E"] by blast
AOT_hence ‹\ιy (y = x & ∃H (x[H] & ¬[H]x))↓› using"Act-Sub:3""B♢""vdash-properties:10"by blast
AOT_thus ‹∃!y \A(y = x & ∃H (x[H] & ¬[H]x))› using"actual-desc:1"[THEN"≡E"(1)] by blast next
AOT_assume A: ‹∃!y \A(y = x & ∃H (x[H] & ¬[H]x))›
AOT_obtain a where a_1: ‹\A(a = x & ∃H (x[H] & 'font-size: 18px;'>¬[H]x))› and a_2: ‹∀z (\A(z = x & ∃H (x[H] & ¬[H]x)) → z = a)› using"uniqueness:1"[THEN"≡dfE", OF A] "&E""∃E"[rotated] by blast
AOT_have a_3: ‹\A[G]a› using antecedant "∀E"by blast moreover AOT_have ‹a = \ιy(y = x & ∃H (x[H] & 'font-size: 18px;'>¬[H]x))› using"nec-hintikka-scheme"[THEN"≡E"(2), OF "&I"] a_1 a_2 by auto ultimately AOT_show ‹\A[G]\ιy (y = x & ∃H (x[H] & yle='font-size: 18px;'>¬[H]x))› using"rule=E"by fast qed also AOT_have B: ‹... ≡\A∃H (x[H] & ¬[H]x)› proof (rule "≡I"; rule "→I")
AOT_assume A: ‹∃!y \A(y = x & ∃H (x[H] & ¬[H]x))›
AOT_obtain a where‹\A(a = x & ∃H (x[H] & ¬[H]x))› using"uniqueness:1"[THEN"≡dfE", OF A] "&E""∃E"[rotated] by blast
AOT_thus ‹\A∃H (x[H] & ¬[H]x)› using"Act-Basic:2"[THEN"≡E"(1), THEN"&E"(2)] by blast next
AOT_assume ‹\A∃H (x[H] & ¬[H]x)›
AOT_hence ‹\Ax = x & \A∃H (x[H] & ¬[H]x)› using"id-eq:1""&I""RA[2]"by blast
AOT_hence ‹\A(x = x & ∃H (x[H] & ¬[H]x))› using"act-conj-act:3""Act-Basic:2""≡E"by blast moreover AOT_have ‹∀z (\A(z = x & ∃H (x[H] & 'font-size: 18px;'>¬[H]x)) → z = x)› proof(safe intro!: GEN "→I") fix z
AOT_assume ‹\A(z = x & ∃H (x[H] & ¬[H]x))›
AOT_hence ‹\A(z = x)› using"Act-Basic:2"[THEN"≡E"(1), THEN"&E"(1)] by blast
AOT_thus ‹z = x› by (metis "id-act:1""intro-elim:3:b") qed ultimately AOT_show ‹∃!y \A(y = x & ∃H (x[H] & e='font-size: 18px;'>¬[H]x))› using"uniqueness:1"[THEN"≡dfI"] "&I""∃I"(2) by fast qed finally AOT_show ‹(\A[G]\ιy(y = x & ∃H (x[H] & ='font-size: 18px;'>¬[H]x)) ≡\A∃H (x[H] & ¬[H]x))›. qed
AOT_assume A: ‹[λx [G]\ιy (y = x & ∃H (x[H] & ¬[H]x))]↓›
AOT_hence ‹\A[λx [G]\ιy (y = x & ∃H (x[H] & ¬[H]x))]↓› using"exist-nec""→E""nec-imp-act"[THEN"→E"] by blast
AOT_hence ‹\A([λx [G]\ιy (y = x & ∃H (x[H] & ¬[H]x))]↓ & ∀x ([G]\ιy(y = x & ∃H (x[H] & ¬[H]x)) ≡∃H (x[H] & ¬[H]x)))› usingLemma"Act-Basic:2"[THEN"≡E"(2)] "&I"by blast moreover AOT_have ‹\A([λx [G]\ιy (y = x & ∃H (x[H] & style='font-size: 18px;'>¬[H]x))]↓ & ∀x ([G]\ιy(y = x & ∃H (x[H] & ¬[H]x)) ≡∃H (x[H] & ¬[H]x))) →\A∃p (p & ¬p)› proof (rule "logic-actual-nec:2"[axiom_inst, THEN"≡E"(1)];
rule "RA[2]"; rule "→I")
AOT_modally_strict {
AOT_assume 0: ‹[λx [G]\ιy (y = x & ∃H (x[H] & ¬[H]x))]↓ & ∀x ([G]\ιy(y = x & ∃H (x[H] & ¬[H]x)) ≡∃H (x[H] & ¬[H]x))›
AOT_have ‹∃F ∀x ([F]x ≡∃G (x[G] & ¬[G]x))› proof(rule "∃I"(1))
AOT_show ‹∀x ([λx [G]\ιy (y = x & ∃H (x[H] & ¬[H]x))]x ≡∃H (x[H] & ¬[H]x))› proof(safe intro!: GEN "≡I""→I""β←C" dest!: "β→C") fix x
AOT_assume ‹[G]\ιy(y = x & ∃H (x[H] & ¬[H]x))›
AOT_thus ‹∃H (x[H] & ¬[H]x)› using0"&E""∀E"(2) "≡E"(1) by blast next fix x
AOT_assume ‹∃H (x[H] & ¬[H]x)›
AOT_thus ‹[G]\ιy(y = x & ∃H (x[H] & ¬[H]x))› using0"&E""∀E"(2) "≡E"(2) by blast qed(auto intro!: 0[THEN"&E"(1)] "cqt:2") next
AOT_show ‹[λx [G]\ιy (y = x & ∃H (x[H] & ¬[H]x))]↓› using0"&E"(1) by blast qed
AOT_thus ‹∃p (p & ¬p)› using"block-paradox:2""reductio-aa:1"by blast
} qed ultimately AOT_have ‹\A∃p (p & ¬p)› using"→E"by blast
AOT_hence ‹∃p \A(p & ¬p)› by (metis "Act-Basic:10""intro-elim:3:a") then AOT_obtain p where‹\A(p & ¬p)› using"∃E"[rotated] by blast moreover AOT_have ‹¬\A(p & ¬p)› using"non-contradiction"[THEN"RA[2]"] by (meson "Act-Sub:1""¬¬I""intro-elim:3:d") ultimately AOT_show ‹p & ¬p›for p by (metis "raa-cor:3") qed
AOT_act_theorem "block-paradox2:2": ‹∃G ¬[λx [G]\ιy (y = x & ∃H (x[H] & ¬[H]x))]↓› proof(rule "∃I"(1))
AOT_have 0: ‹[λx ∀p (p →p)]↓› by"cqt:2[lambda]" moreover AOT_have ‹∀x [λx ∀p (p →p)]x› apply (rule GEN) apply (rule "beta-C-cor:2"[THEN"→E", OF 0, THEN"∀E"(2), THEN"≡E"(2)]) using"if-p-then-p" GEN by fast moreover AOT_have ‹∀G (∀x [G]x →¬[λx [G]\ιy (y = x & ∃H (x[H] & ¬[H]x))]↓)› using"block-paradox2:1""∀I"by fast ultimately AOT_show ‹¬[λx [λx ∀p (p →p)]\ιy (y = x & ∃H (x[H] & ¬[H]x))]↓› using"∀E"(1) "→E"by blast qed("cqt:2[lambda]")
AOT_theorem propositions: ‹∃p ◻(p ≡ φ)› proof(rule "∃I"(1))
AOT_show ‹◻(φ ≡ φ)› by (simp add: RN "oth-class-taut:3:a") next
AOT_show ‹φ↓› by (simp add: "log-prop-prop:2") qed
AOT_theorem "pos-not-equiv-ne:1": ‹(♢¬∀x1...∀xn ([F]x1...xn≡ [G]x1...xn)) → F ≠ G› proof (rule "→I")
AOT_assume ‹♢¬∀x1...∀xn ([F]x1...xn≡ [G]x1...xn)›
AOT_hence ‹¬◻∀x1...∀xn ([F]x1...xn≡ [G]x1...xn)› using"KBasic:11"[THEN"≡E"(2)] by blast
AOT_hence ‹¬(F = G)› using"id-rel-nec-equiv:1""modus-tollens:1"by blast
AOT_thus ‹F ≠ G› using"=-infix"[THEN"≡dfI"] by blast qed
AOT_theorem "thm-relation-negation:1": ‹[F]-x1...xn≡¬[F]x1...xn› proof -
AOT_have ‹[F]-x1...xn≡ [λx1...xn¬[F]x1...xn]x1...xn› using"rule=E"[rotated, OF "rel-neg-T:2"] "rule=E"[rotated, OF "rel-neg-T:2"[THEN id_sym]] "→I""≡I"by fast also AOT_have ‹... ≡¬[F]x1...xn› using"beta-C-meta"[THEN"→E", OF "rel-neg-T:1"] by fast finallyshow ?thesis. qed
AOT_theorem "thm-cont-e:1": ‹♢∃x (E!x & ♢¬E!x)› proof (rule "CBF♢"[THEN"→E"])
AOT_have ‹∃x ♢(E!x & ¬\AE!x)› using"qml:4"[axiom_inst] "BF♢"[THEN"→E"] by blast then AOT_obtain a where‹♢(E!a & ¬\AE!a)› using"∃E"[rotated] by blast
AOT_hence θ: ‹♢E!a & ♢¬\AE!a› using"KBasic2:3"[THEN"→E"] by blast
AOT_have ξ: ‹♢E!a & ♢\A¬E!a› by (AOT_subst ‹\A¬E!a›‹¬\AE!a›)
(auto simp: "logic-actual-nec:1"[axiom_inst] θ)
AOT_have ζ: ‹♢E!a & \A¬E!a› by (AOT_subst ‹\A¬E!a›‹♢\A¬E!a›)
(auto simp add: "Act-Sub:4" ξ)
AOT_hence ‹♢E!a & ♢¬E!a› using"&E""&I""Act-Sub:3"[THEN"→E"] by blast
AOT_hence ‹♢(E!a & ♢¬E!a)› using"S5Basic:11"[THEN"≡E"(2)] by simp
AOT_thus ‹∃x ♢(E!x & ♢¬E!x)› using"∃I"(2) by fast qed
AOT_theorem "thm-cont-e:2": ‹♢∃x (¬E!x & ♢E!x)› proof -
AOT_have ‹∀F (♢∃x ([F]x & ♢¬[F]x) ≡♢∃x (¬[F]x & tyle='font-size: 18px;'>♢[F]x))› using"lem-cont-e:1" GEN by fast
AOT_hence ‹(♢∃x (E!x & ♢¬E!x) ≡♢∃x (¬E!x & 'font-size: 18px;'>♢E!x))› using"∀E"(2) by blast thus ?thesis using"thm-cont-e:1""≡E"by blast qed
AOT_theorem "thm-cont-e:3": ‹♢∃x E!x› proof (rule "CBF♢"[THEN"→E"])
AOT_obtain a where‹♢(E!a & ♢¬E!a)› using"∃E"[rotated, OF "thm-cont-e:1"[THEN"BF♢"[THEN"→E"]]] by blast
AOT_hence ‹♢E!a› using"KBasic2:3"[THEN"→E", THEN"&E"(1)] by blast
AOT_thus ‹∃x ♢E!x›using"∃I"by fast qed
AOT_theorem "thm-cont-e:4": ‹♢∃x ¬E!x› proof (rule "CBF♢"[THEN"→E"])
AOT_obtain a where‹♢(E!a & ♢¬E!a)› using"∃E"[rotated, OF "thm-cont-e:1"[THEN"BF♢"[THEN"→E"]]] by blast
AOT_hence ‹♢♢¬E!a› using"KBasic2:3"[THEN"→E", THEN"&E"(2)] by blast
AOT_hence ‹♢¬E!a› using"4♢"[THEN"→E"] by blast
AOT_thus ‹∃x ♢¬E!x›using"∃I"by fast qed
AOT_theorem "thm-cont-e:5": ‹Contingent([E!])› proof -
AOT_have ‹∀F (Contingent([F]) ≡♢∃x [F]x & ♢∃x ¬[F]x)› using"thm-cont-prop:2" GEN by fast
AOT_hence ‹Contingent([E!]) ≡♢∃x E!x & ♢∃x ¬E!x› using"∀E"(2) by blast thus ?thesis using"thm-cont-e:3""thm-cont-e:4""≡E"(2) "&I"by blast qed
AOT_theorem "thm-cont-e:6": ‹Contingent([E!]-)› proof -
AOT_have ‹∀F (Contingent([«F::<\<kappa>>¬]) ≡ Contingent([F]-))› using"thm-cont-prop:3" GEN by fast
AOT_hence ‹Contingent([E!]) ≡ Contingent([E!]-)› using"∀E"(2) by fast thus ?thesis using"thm-cont-e:5""≡E"by blast qed
AOT_theorem "thm-cont-e:7": ‹∃F∃G (Contingent([«F::<\<kappa>>¬]) & Contingent([G]) & F ≠ G)› proof (rule "∃I")+
AOT_have ‹∀F [«F::<\<kappa>>¬] ≠ [F]-› using"thm-relation-negation:5" GEN by fast
AOT_hence ‹[E!] ≠ [E!]-› using"∀E"by fast
AOT_thus ‹Contingent([E!]) & Contingent([E!]-) & [E!] ≠ [E!]-› using"thm-cont-e:5""thm-cont-e:6""&I"by metis next
AOT_show ‹E!-↓› by (fact AOT) qed("cqt:2")
AOT_theorem "property-facts:1": ‹NonContingent([F]) →¬∃G (Contingent([G]) & G = F)› proof (rule "→I"; rule "raa-cor:2")
AOT_assume ‹NonContingent([F])›
AOT_hence 1: ‹Necessary([F]) ∨ Impossible([F])› using"contingent-properties:3"[THEN"≡dfE"] by blast
AOT_assume ‹∃G (Contingent([G]) & G = F)› then AOT_obtain G where‹Contingent([G]) & G = F› using"∃E"[rotated] by blast
AOT_hence ‹Contingent([F])›using"rule=E""&E"by blast
AOT_hence ‹¬(Necessary([F]) ∨ Impossible([F]))› using"contingent-properties:4"[THEN"≡Df", THEN"≡S"(1),
OF "cqt:2[const_var]"[axiom_inst], THEN"≡E"(1)] by blast
AOT_thus ‹(Necessary([F]) ∨ Impossible([F])) & ¬(Necessary([F]) ∨ Impossible([F]))› using1"&I"by blast qed
AOT_theorem "property-facts:2": ‹Contingent([F]) →¬∃G (NonContingent([G]) & G = F)› proof (rule "→I"; rule "raa-cor:2")
AOT_assume ‹Contingent([F])›
AOT_hence 1: ‹¬(Necessary([F]) ∨ Impossible([F]))› using"contingent-properties:4"[THEN"≡Df", THEN"≡S"(1),
OF "cqt:2[const_var]"[axiom_inst], THEN"≡E"(1)] by blast
AOT_assume ‹∃G (NonContingent([G]) & G = F)› then AOT_obtain G where‹NonContingent([G]) & G = F› using"∃E"[rotated] by blast
AOT_hence ‹NonContingent([F])› using"rule=E""&E"by blast
AOT_hence ‹Necessary([F]) ∨ Impossible([F])› using"contingent-properties:3"[THEN"≡dfE"] by blast
AOT_thus ‹(Necessary([F]) ∨ Impossible([F])) & ¬(Necessary([F]) ∨ Impossible([F]))› using1"&I"by blast qed
AOT_theorem "property-facts:3": ‹L ≠ [L]- & L ≠ E! & L ≠ E!- & [L]-≠ [E!]- & E! ≠ [E!]-› proof -
AOT_have noneqI: ‹Π ≠ Π'›if‹φ{Π}›and‹¬φ{Π'}›for φ and Π Π' :: ‹<\<kappa>>› apply (rule "=-infix"[THEN"≡dfI"]; rule "raa-cor:2") using"rule=E"[where φ=φ and τ=Π and σ = Π'] that "&I"by blast
AOT_have contingent_denotes: ‹Π↓›if‹Contingent([Π])›for Π :: ‹<\<kappa>>› using that "contingent-properties:4"[THEN"≡dfE", THEN"&E"(1)] by blast
AOT_have not_noncontingent_if_contingent: ‹¬NonContingent([Π])›if‹Contingent([Π])›for Π :: ‹<\<kappa>>› proof(rule RAA(2))
AOT_show ‹¬(Necessary([Π]) ∨ Impossible([Π]))› using that "contingent-properties:4"[THEN"≡Df", THEN"≡S"(1),
OF contingent_denotes[OF that], THEN"≡E"(1)] by blast next
AOT_assume ‹NonContingent([Π])›
AOT_thus ‹Necessary([Π]) ∨ Impossible([Π])› using"contingent-properties:3"[THEN"≡dfE"] by blast qed
show ?thesis proof (safe intro!: "&I")
AOT_show ‹L ≠ [L]-› apply (rule "=dfI"(2)[OF L_def]) apply"cqt:2[lambda]" apply (rule "∀E"(1)[where φ="λ Π . «Π ≠ [Π]-¬"]) apply (rule GEN) apply (fact AOT) by"cqt:2[lambda]" next
AOT_show ‹L ≠ E!› apply (rule noneqI) using"thm-noncont-e-e:3"
not_noncontingent_if_contingent[OF "thm-cont-e:5"] by auto next
AOT_show ‹L ≠ E!-› apply (rule noneqI) using"thm-noncont-e-e:3"apply fast apply (rule not_noncontingent_if_contingent) apply (rule "∀E"(1)[ where φ="λ Π . «Contingent([Π]) ≡ Contingent([Π]-)¬",
rotated, OF contingent_denotes, THEN"≡E"(1), rotated]) using"thm-cont-prop:3" GEN apply fast using"thm-cont-e:5"by fast+ next
AOT_show ‹[L]-≠ E!-› apply (rule noneqI) using"thm-noncont-e-e:4"apply fast apply (rule not_noncontingent_if_contingent) apply (rule "∀E"(1)[ where φ="λ Π . «Contingent([Π]) ≡ Contingent([Π]-)¬",
rotated, OF contingent_denotes, THEN"≡E"(1), rotated]) using"thm-cont-prop:3" GEN apply fast using"thm-cont-e:5"by fast+ next
AOT_show ‹E! ≠ E!-› apply (rule "=dfI"(2)[OF L_def]) apply"cqt:2[lambda]" apply (rule "∀E"(1)[where φ="λ Π . «Π ≠ [Π]-¬"]) apply (rule GEN) apply (fact AOT) by"cqt:2" qed qed
AOT_theorem "thm-cont-propos:1": ‹NonContingent0(p) ≡ NonContingent0(((p)-))› proof(rule "≡I"; rule "→I")
AOT_assume ‹NonContingent0(p)›
AOT_hence ‹Necessary0(p) ∨ Impossible0(p)› using"contingent-properties:3[zero]"[THEN"≡dfE"] by blast moreover {
AOT_assume ‹Necessary0(p)›
AOT_hence 1: ‹◻p› using"contingent-properties:1[zero]"[THEN"≡dfE"] by blast
AOT_have ‹◻¬((p)-)› by (AOT_subst ‹¬((p)-)›‹p›)
(auto simp add: 1"thm-relation-negation:4")
AOT_hence ‹Impossible0(((p)-))› by (rule "contingent-properties:2[zero]"[THEN"≡dfI"])
} moreover {
AOT_assume ‹Impossible0(p)›
AOT_hence 1: ‹◻¬p› by (rule "contingent-properties:2[zero]"[THEN"≡dfE"])
AOT_have ‹◻((p)-)› by (AOT_subst ‹((p)-)›‹¬p›)
(auto simp: 1"thm-relation-negation:3")
AOT_hence ‹Necessary0(((p)-))› by (rule "contingent-properties:1[zero]"[THEN"≡dfI"])
} ultimately AOT_have ‹Necessary0(((p)-)) ∨ Impossible0(((p)-))› using"∨E"(1) "∨I""→I"by metis
AOT_thus ‹NonContingent0(((p)-))› using"contingent-properties:3[zero]"[THEN"≡dfI"] by blast next
AOT_assume ‹NonContingent0(((p)-))›
AOT_hence ‹Necessary0(((p)-)) ∨ Impossible0(((p)-))› using"contingent-properties:3[zero]"[THEN"≡dfE"] by blast moreover {
AOT_assume ‹Impossible0(((p)-))›
AOT_hence 1: ‹◻¬((p)-)› by (rule "contingent-properties:2[zero]"[THEN"≡dfE"])
AOT_have ‹◻p› by (AOT_subst (reverse) ‹p›‹¬((p)-)›)
(auto simp: 1"thm-relation-negation:4")
AOT_hence ‹Necessary0(p)› using"contingent-properties:1[zero]"[THEN"≡dfI"] by blast
} moreover {
AOT_assume ‹Necessary0(((p)-))›
AOT_hence 1: ‹◻((p)-)› by (rule "contingent-properties:1[zero]"[THEN"≡dfE"])
AOT_have ‹◻¬p› by (AOT_subst (reverse) ‹¬p›‹((p)-)›)
(auto simp: 1"thm-relation-negation:3")
AOT_hence ‹Impossible0(p)› by (rule "contingent-properties:2[zero]"[THEN"≡dfI"])
} ultimately AOT_have ‹Necessary0(p) ∨ Impossible0(p)› using"∨E"(1) "∨I""→I"by metis
AOT_thus ‹NonContingent0(p)› using"contingent-properties:3[zero]"[THEN"≡dfI"] by blast qed
AOT_theorem "thm-cont-propos:2": ‹Contingent0(φ) ≡♢φ & ♢¬φ› proof -
AOT_have ‹Contingent0(φ) ≡¬(Necessary0(φ) ∨ Impossible0(φ))› using"contingent-properties:4[zero]"[THEN"≡Df"] by simp also AOT_have ‹…≡¬Necessary0(φ) & ¬Impossible0(φ)› by (fact AOT) also AOT_have ‹…≡¬Impossible0(φ) & ¬Necessary0(φ)› by (fact AOT) also AOT_have ‹…≡♢φ & ♢¬φ› apply (AOT_subst ‹♢φ›‹¬◻¬φ›) apply (simp add: "conventions:5""≡Df") apply (AOT_subst ‹Impossible0(φ)›‹◻¬φ›) apply (simp add: "contingent-properties:2[zero]""≡Df") apply (AOT_subst (reverse) ‹♢¬φ›‹¬◻φ›) apply (simp add: "KBasic:11") apply (AOT_subst ‹Necessary0(φ)›‹◻φ›) apply (simp add: "contingent-properties:1[zero]""≡Df") by (simp add: "oth-class-taut:3:a") finallyshow ?thesis. qed
AOT_theorem "thm-cont-propos:3": ‹Contingent0(p) ≡ Contingent0(((p)-))› proof -
AOT_have ‹Contingent0(p) ≡♢p & ♢¬p›using"thm-cont-propos:2". also AOT_have ‹…≡♢¬p & ♢p›by (fact AOT) also AOT_have ‹…≡♢((p)-) & ♢p› by (AOT_subst ‹((p)-)›‹¬p›)
(auto simp: "thm-relation-negation:3""oth-class-taut:3:a") also AOT_have ‹…≡♢((p)-) & ♢¬((p)-)› by (AOT_subst ‹¬((p)-)›‹p›)
(auto simp: "thm-relation-negation:4""oth-class-taut:3:a") also AOT_have ‹…≡ Contingent0(((p)-))› using"thm-cont-propos:2"[symmetric] by blast finallyshow ?thesis. qed
AOT_theorem "thm-noncont-propos:1": ‹Necessary0((p0))› proof(rule "contingent-properties:1[zero]"[THEN"≡dfI"])
AOT_show ‹◻(p0)› apply (rule "=dfI"(2)[OF p0_def]) using"log-prop-prop:2"apply simp using"if-p-then-p" RN GEN by fast qed
AOT_theorem "thm-noncont-propos:2": ‹Impossible0(((p0)-))› proof(rule "contingent-properties:2[zero]"[THEN"≡dfI"])
AOT_show ‹◻¬((p0)-)› apply (AOT_subst ‹((p0)-)›‹¬p0›) using"thm-relation-negation:3" GEN "∀E"(1)[rotated, OF "log-prop-prop:2"] apply fast apply (AOT_subst (reverse) ‹¬¬p0›‹p0›) apply (simp add: "oth-class-taut:3:b") apply (rule "=dfI"(2)[OF p0_def]) using"log-prop-prop:2"apply simp using"if-p-then-p" RN GEN by fast qed
AOT_theorem "thm-noncont-propos:5": ‹∃p∃q (NonContingent0((p)) & NonContingent0((q)) & p ≠ q)› proof(rule "∃I")+
AOT_have 0: ‹φ ≠ (φ)-›for φ using"thm-relation-negation:6""∀I" "∀E"(1)[rotated, OF "log-prop-prop:2"] by fast
AOT_thus ‹NonContingent0((p0)) & NonContingent0(((p0)-)) & (p0) ≠ (p0)-› using"thm-noncont-propos:3""thm-noncont-propos:4""&I"by auto qed(auto simp: "log-prop-prop:2")
AOT_act_theorem "no-cnac": ‹¬∃x(E!x & ¬\AE!x)› proof(rule "raa-cor:2")
AOT_assume ‹∃x(E!x & ¬\AE!x)› then AOT_obtain a where a: ‹E!a & ¬\AE!a› using"∃E"[rotated] by blast
AOT_hence ‹\A¬E!a› using"&E""logic-actual-nec:1"[axiom_inst, THEN"≡E"(2)] by blast
AOT_hence ‹¬E!a› using"logic-actual"[act_axiom_inst, THEN"→E"] by blast
AOT_hence ‹E!a & ¬E!a› using a "&E""&I"by blast
AOT_thus ‹p & ¬p›for p using"raa-cor:1"by blast qed
AOT_theorem "pos-not-pna:1": ‹¬\A∃x (E!x & ¬\AE!x)› proof(rule "raa-cor:2")
AOT_assume ‹\A∃x (E!x & ¬\AE!x)›
AOT_hence ‹∃x \A(E!x & ¬\AE!x)› using"Act-Basic:10"[THEN"≡E"(1)] by blast then AOT_obtain a where‹\A(E!a & ¬\AE!a)› using"∃E"[rotated] by blast
AOT_hence 1: ‹\AE!a & \A¬\AE!a› using"Act-Basic:2"[THEN"≡E"(1)] by blast
AOT_hence ‹¬\A\AE!a› using"&E"(2) "logic-actual-nec:1"[axiom_inst, THEN"≡E"(1)] by blast
AOT_hence ‹¬\AE!a› using"logic-actual-nec:4"[axiom_inst, THEN"≡E"(1)] RAA by blast
AOT_thus ‹p & ¬p›for p using1[THEN"&E"(1)] "&I""raa-cor:1"by blast qed
AOT_theorem "pos-not-pna:2": ‹♢¬∃x(E!x & ¬\AE!x)› proof (rule RAA(1))
AOT_show ‹¬\A∃x (E!x & ¬\AE!x)› using"pos-not-pna:1"by blast next
AOT_assume ‹¬♢¬∃x (E!x & ¬\AE!x)›
AOT_hence ‹◻∃x (E!x & ¬\AE!x)› using"KBasic:12"[THEN"≡E"(2)] by blast
AOT_thus ‹\A∃x (E!x & ¬\AE!x)› using"nec-imp-act"[THEN"→E"] by blast qed
AOT_theorem "pos-not-pna:3": ‹∃x (♢E!x & ¬\AE!x)› proof -
AOT_obtain a where‹♢(E!a & ¬\AE!a)› using"qml:4"[axiom_inst] "BF♢"[THEN"→E"] "∃E"[rotated] by blast
AOT_hence θ: ‹♢E!a›and ξ: ‹♢¬\AE!a› using"KBasic2:3"[THEN"→E"] "&E"by blast+
AOT_have ‹¬◻\AE!a› using ξ "KBasic:11"[THEN"≡E"(2)] by blast
AOT_hence ‹¬\AE!a› using"Act-Basic:6"[THEN"oth-class-taut:4:b"[THEN"≡E"(1)], THEN"≡E"(2)] by blast
AOT_hence ‹♢E!a & ¬\AE!a›using θ "&I"by blast thus ?thesis using"∃I"by fast qed
AOT_theorem "oa-contingent:4": ‹Contingent(O!)› proof (rule "thm-cont-prop:2"[unvarify F, OF "oa-exist:1", THEN"≡E"(2)];
rule "&I")
AOT_have ‹♢∃x E!x›using"thm-cont-e:3" .
AOT_hence ‹∃x ♢E!x›using"BF♢"[THEN"→E"] by blast then AOT_obtain a where‹♢E!a›using"∃E"[rotated] by blast
AOT_hence ‹[λx ♢E!x]a› by (rule "beta-C-meta"[THEN"→E", THEN"≡E"(2), rotated]) "cqt:2"
AOT_hence ‹O!a› by (rule "=dfI"(2)[OF AOT_ordinary, rotated]) "cqt:2"
AOT_hence ‹∃x O!x›using"∃I"by blast
AOT_thus ‹♢∃x O!x›using"T♢"[THEN"→E"] by blast next
AOT_obtain a where‹A!a› using"A-objects"[axiom_inst] "∃E"[rotated] "&E"by blast
AOT_hence ‹¬O!a›using"oa-contingent:3"[THEN"≡E"(1)] by blast
AOT_hence ‹∃x ¬O!x›using"∃I"by fast
AOT_thus ‹♢∃x ¬O!x›using"T♢"[THEN"→E"] by blast qed
AOT_theorem "oa-contingent:5": ‹Contingent(A!)› proof (rule "thm-cont-prop:2"[unvarify F, OF "oa-exist:2", THEN"≡E"(2)];
rule "&I")
AOT_obtain a where‹A!a› using"A-objects"[axiom_inst] "∃E"[rotated] "&E"by blast
AOT_hence ‹∃x A!x›using"∃I"by fast
AOT_thus ‹♢∃x A!x›using"T♢"[THEN"→E"] by blast next
AOT_have ‹♢∃x E!x›using"thm-cont-e:3" .
AOT_hence ‹∃x ♢E!x›using"BF♢"[THEN"→E"] by blast then AOT_obtain a where‹♢E!a›using"∃E"[rotated] by blast
AOT_hence ‹[λx ♢E!x]a› by (rule "beta-C-meta"[THEN"→E", THEN"≡E"(2), rotated]) "cqt:2[lambda]"
AOT_hence ‹O!a› by (rule "=dfI"(2)[OF AOT_ordinary, rotated]) "cqt:2[lambda]"
AOT_hence ‹¬A!a›using"oa-contingent:2"[THEN"≡E"(1)] by blast
AOT_hence ‹∃x ¬A!x›using"∃I"by fast
AOT_thus ‹♢∃x ¬A!x›using"T♢"[THEN"→E"] by blast qed
AOT_have act_and_not_nec_not_delta: ‹¬\Δφ›if‹\Aφ›and‹¬◻φ›for φ using"≡dfE""&E"(1) "∨E"(2) necessary_or_contingently_false "raa-cor:3" that(1,2) by blast
AOT_have act_and_pos_not_not_delta: ‹¬\Δφ›if‹\Aφ›and‹♢¬φ›for φ using"KBasic:11" act_and_not_nec_not_delta "≡E"(2) that(1,2) by blast
AOT_have impossible_delta: ‹¬\Δφ›if‹¬♢φ›for φ using Delta_pos "modus-tollens:1" that by blast
AOT_have not_act_and_pos_delta: ‹\Δφ›if‹¬\Aφ›and‹♢φ›for φ by (meson "≡dfI""&I""∨I"(2) necessary_or_contingently_false that(1,2))
AOT_have nec_delta: ‹\Δφ›if‹◻φ›for φ using"≡dfI""∨I"(1) necessary_or_contingently_false that by blast
AOT_obtain a where a_prop: ‹A!a› using"A-objects"[axiom_inst] "∃E"[rotated] "&E"by blast
AOT_obtain b where b_prop: ‹♢[E!]b & ¬\A[E!]b› using"pos-not-pna:3"using"∃E"[rotated] by blast
AOT_have b_ord: ‹[O!]b› proof(rule "=dfI"(2)[OF AOT_ordinary])
AOT_show ‹[λx ♢[E!]x]↓›by"cqt:2[lambda]" next
AOT_show ‹[λx ♢[E!]x]b› proof (rule "β←C"(1); ("cqt:2[lambda]")?)
AOT_show ‹b↓›by (rule "cqt:2[const_var]"[axiom_inst])
AOT_show ‹♢[E!]b›by (fact b_prop[THEN"&E"(1)]) qed qed
AOT_have nec_not_L_neg: ‹◻¬[L-]x›for x using"thm-noncont-e-e:2""contingent-properties:2"[THEN"≡dfE"] "&E"
CBF[THEN"→E"] "∀E"by blast
AOT_have nec_L: ‹◻[L]x›for x using"thm-noncont-e-e:1""contingent-properties:1"[THEN"≡dfE"]
CBF[THEN"→E"] "∀E"by blast
AOT_have act_ord_b: ‹\A[O!]b› using b_ord "≡E"(1) "oa-facts:7"by blast
AOT_have delta_ord_b: ‹\Δ[O!]b› by (meson "≡dfI" b_ord "∨I"(1) necessary_or_contingently_false "oa-facts:1""→E")
AOT_have not_act_ord_a: ‹¬\A[O!]a› by (meson a_prop "≡E"(1) "≡E"(3) "oa-contingent:3""oa-facts:7")
AOT_have not_delta_ord_a: ‹¬\Δ[O!]a› by (metis Delta_pos "≡E"(4) not_act_ord_a "oa-facts:3""oa-facts:7" "reductio-aa:1""→E")
AOT_have not_act_abs_b: ‹¬\A[A!]b› by (meson b_ord "≡E"(1) "≡E"(3) "oa-contingent:2""oa-facts:8")
AOT_have not_delta_abs_b: ‹¬\Δ[A!]b› proof(rule "raa-cor:2")
AOT_assume ‹\Δ[A!]b›
AOT_hence ‹♢[A!]b› by (metis Delta_pos "vdash-properties:10")
AOT_thus ‹[A!]b & ¬[A!]b› by (metis b_ord "&I""≡E"(1) "oa-contingent:2" "oa-facts:4""→E") qed
AOT_have act_abs_a: ‹\A[A!]a› using a_prop "≡E"(1) "oa-facts:8"by blast
AOT_have delta_abs_a: ‹\Δ[A!]a› by (metis "≡dfI" a_prop "oa-facts:2""→E""∨I"(1)
necessary_or_contingently_false)
AOT_have not_act_concrete_b: ‹¬\A[E!]b› using b_prop "&E"(2) by blast
AOT_have delta_concrete_b: ‹\Δ[E!]b› proof (rule "≡dfI"[OF necessary_or_contingently_false];
rule "∨I"(2); rule "&I")
AOT_show ‹¬\A[E!]b›using b_prop "&E"(2) by blast next
AOT_show ‹♢[E!]b›using b_prop "&E"(1) by blast qed
AOT_have not_act_concrete_a: ‹¬\A[E!]a› proof (rule "raa-cor:2")
AOT_assume ‹\A[E!]a›
AOT_hence 1: ‹♢[E!]a›by (metis "Act-Sub:3""→E")
AOT_have ‹[A!]a›by (simp add: a_prop)
AOT_hence ‹[λx ¬♢[E!]x]a› by (rule "=dfE"(2)[OF AOT_abstract, rotated]) "cqt:2"
AOT_hence ‹¬♢[E!]a›using"β→C"(1) by blast
AOT_thus ‹♢[E!]a & ¬♢[E!]a›using1"&I"by blast qed
AOT_have not_delta_concrete_a: ‹¬\Δ[E!]a› proof (rule "raa-cor:2")
AOT_assume ‹\Δ[E!]a›
AOT_hence 1: ‹♢[E!]a›by (metis Delta_pos "vdash-properties:10")
AOT_have ‹[A!]a›by (simp add: a_prop)
AOT_hence ‹[λx ¬♢[E!]x]a› by (rule "=dfE"(2)[OF AOT_abstract, rotated]) "cqt:2[lambda]"
AOT_hence ‹¬♢[E!]a›using"β→C"(1) by blast
AOT_thus ‹♢[E!]a & ¬♢[E!]a›using1"&I"by blast qed
text‹Note: Not explicitly mentioned as theorem in PLM.›
AOT_theorem "=E[denotes]": ‹[(=E)]↓› by (rule "=dfI"(2)[OF "=E"]) "cqt:2[lambda]"+
AOT_theorem "=E-simple:1": ‹x =E y ≡ (O!x & O!y & ◻∀F ([F]x ≡ [F]y))› proof -
AOT_have 1: ‹[λxy [O!]x & [O!]y & ◻∀F ([F]x ≡ [F]y)]↓›by"cqt:2" show ?thesis apply (rule "=dfI"(2)[OF "=E"]; "cqt:2[lambda]"?) using"beta-C-meta"[THEN"→E", OF 1, unvarify ν1νn, of "(_,_)",
OF tuple_denotes[THEN"≡dfI"], OF "&I",
OF "cqt:2[const_var]"[axiom_inst],
OF "cqt:2[const_var]"[axiom_inst]] by fast qed
AOT_theorem "=E-simple:2": ‹x =E y → x = y› proof (rule "→I")
AOT_assume ‹x =E y›
AOT_hence ‹O!x & O!y & ◻∀F ([F]x ≡ [F]y)› using"=E-simple:1"[THEN"≡E"(1)] by blast
AOT_thus ‹x = y› using"≡dfI"[OF "identity:1"] "∨I"by blast qed
AOT_theorem "ord=Eequiv:2": ‹x =E y → y =E x› proof(rule CP)
AOT_assume 1: ‹x =E y›
AOT_hence 2: ‹x = y›by (metis "=E-simple:2""vdash-properties:10")
AOT_have ‹O!x›using1by (meson "&E"(1) "=E-simple:1""≡E"(1))
AOT_hence ‹x =E x›using"ord=Eequiv:1""→E"by blast
AOT_thus ‹y =E x›using"rule=E"[rotated, OF 2] by fast qed
AOT_theorem "ord=Eequiv:3": ‹(x =E y & y =E z) → x =E z› proof (rule CP)
AOT_assume 1: ‹x =E y & y =E z›
AOT_hence ‹x = y & y = z› by (metis "&I""&E"(1) "&E"(2) "=E-simple:2""vdash-properties:6")
AOT_hence ‹x = z›by (metis "id-eq:3""vdash-properties:6") moreover AOT_have ‹x =E x› using1[THEN"&E"(1)] "&E"(1) "=E-simple:1""≡E"(1) "ord=Eequiv:1""→E"by blast ultimately AOT_show ‹x =E z› using"rule=E"by fast qed
AOT_theorem "ord-=E=:1": ‹(O!x ∨ O!y) →◻(x = y ≡ x =E y)› proof(rule CP)
AOT_assume ‹O!x ∨ O!y› moreover {
AOT_assume ‹O!x›
AOT_hence ‹◻O!x›by (metis "oa-facts:1""vdash-properties:10") moreover {
AOT_modally_strict {
AOT_have ‹O!x → (x = y ≡ x =E y)› proof (rule "→I"; rule "≡I"; rule "→I")
AOT_assume ‹O!x›
AOT_hence ‹x =E x›by (metis "ord=Eequiv:1""→E") moreover AOT_assume ‹x = y› ultimately AOT_show ‹x =E y›using"rule=E"by fast next
AOT_assume ‹x =E y›
AOT_thus ‹x = y›by (metis "=E-simple:2""→E") qed
}
AOT_hence ‹◻O!x →◻(x = y ≡ x =E y)›by (metis "RM:1")
} ultimately AOT_have ‹◻(x = y ≡ x =E y)›using"→E"by blast
} moreover {
AOT_assume ‹O!y›
AOT_hence ‹◻O!y›by (metis "oa-facts:1""vdash-properties:10") moreover {
AOT_modally_strict {
AOT_have ‹O!y → (x = y ≡ x =E y)› proof (rule "→I"; rule "≡I"; rule "→I")
AOT_assume ‹O!y›
AOT_hence ‹y =E y›by (metis "ord=Eequiv:1""→E") moreover AOT_assume ‹x = y› ultimately AOT_show ‹x =E y›using"rule=E" id_sym by fast next
AOT_assume ‹x =E y›
AOT_thus ‹x = y›by (metis "=E-simple:2""→E") qed
}
AOT_hence ‹◻O!y →◻(x = y ≡ x =E y)›by (metis "RM:1")
} ultimately AOT_have ‹◻(x = y ≡ x =E y)›using"→E"by blast
} ultimately AOT_show ‹◻(x = y ≡ x =E y)›by (metis "∨E"(3) "raa-cor:1") qed
AOT_theorem "ord-=E=:2": ‹O!y → [λx x = y]↓› proof (rule "→I"; rule "safe-ext"[axiom_inst, THEN"→E"]; rule "&I")
AOT_show ‹[λx x =E y]↓›by"cqt:2[lambda]" next
AOT_assume ‹O!y›
AOT_hence 1: ‹◻(x = y ≡ x =E y)›for x using"ord-=E=:1""→E""∨I"by blast
AOT_have ‹◻(x =E y ≡ x = y)›for x by (AOT_subst ‹x =E y ≡ x = y›‹x = y ≡ x =E y›)
(auto simp add: "Commutativity of ≡"1)
AOT_hence ‹∀x ◻(x =E y ≡ x = y)›by (rule GEN)
AOT_thus ‹◻∀x (x =E y ≡ x = y)›by (rule BF[THEN"→E"]) qed
AOT_theorem "ord-=E=:3": ‹[λxy O!x & O!y & x = y]↓› proof (rule "safe-ext[2]"[axiom_inst, THEN"→E"]; rule "&I")
AOT_show ‹[λxy O!x & O!y & x =E y]↓›by"cqt:2[lambda]" next
AOT_show ‹◻∀x∀y ([O!]x & [O!]y & x =E y ≡ [O!]x & [O!]y & x = y)› proof (rule RN; rule GEN; rule GEN; rule "≡I"; rule "→I")
AOT_modally_strict {
AOT_show ‹[O!]x & [O!]y & x = y›if‹[O!]x & [O!]y & x =E y›for x y by (metis "&I""&E"(1) "Conjunction Simplification"(2) "=E-simple:2" "modus-tollens:1""raa-cor:1" that)
} next
AOT_modally_strict {
AOT_show ‹[O!]x & [O!]y & x =E y›if‹[O!]x & [O!]y & x = y›for x y apply(safe intro!: "&I") apply (metis that[THEN"&E"(1), THEN"&E"(1)]) apply (metis that[THEN"&E"(1), THEN"&E"(2)]) using"rule=E"[rotated, OF that[THEN"&E"(2)]] "ord=Eequiv:1"[THEN"→E", OF that[THEN"&E"(1), THEN"&E"(1)]] by fast
} qed qed
AOT_theorem "null-uni-facts:3": ‹Null(a\∅)› apply (rule "=dfI"(2)[OF "df-null-uni-terms:1"]) apply (simp add: "null-uni-uniq:3") using"actual-desc:4"[THEN"→E", OF "null-uni-uniq:3"] "sc-eq-fur:2"[THEN"→E",
OF "null-uni-facts:1"[unvarify x, THEN RN, OF "null-uni-uniq:3"], THEN"≡E"(1)] by blast
AOT_theorem "null-uni-facts:4": ‹Universal(aV)› apply (rule "=dfI"(2)[OF "df-null-uni-terms:2"]) apply (simp add: "null-uni-uniq:4") using"actual-desc:4"[THEN"→E", OF "null-uni-uniq:4"] "sc-eq-fur:2"[THEN"→E",
OF "null-uni-facts:2"[unvarify x, THEN RN, OF "null-uni-uniq:4"], THEN"≡E"(1)] by blast
AOT_theorem "null-uni-facts:5": ‹a\∅≠ aV› proof (rule "=dfI"(2)[OF "df-null-uni-terms:1", OF "null-uni-uniq:3"];
rule "=dfI"(2)[OF "df-null-uni-terms:2", OF "null-uni-uniq:4"];
rule "≡dfI"[OF "=-infix"];
rule "raa-cor:2")
AOT_obtain x where nullx: ‹Null(x)› by (metis "instantiation""df-null-uni-terms:1""existential:1" "null-uni-facts:3""null-uni-uniq:3""rule-id-df:2:b[zero]")
AOT_hence act_null: ‹\ANull(x)› by (metis "nec-imp-act""null-uni-facts:1""→E")
AOT_assume ‹\ιx Null(x) = \ιx Universal(x)›
AOT_hence ‹\A∀x(Null(x) ≡ Universal(x))› using"actual-desc:5"[THEN"→E"] by blast
AOT_hence ‹∀x \A(Null(x) ≡ Universal(x))› by (metis "≡E"(1) "logic-actual-nec:3""vdash-properties:1[2]")
AOT_hence ‹\ANull(x) ≡\AUniversal(x)› using"Act-Basic:5""≡E"(1) "rule-ui:3"by blast
AOT_hence ‹\AUniversal(x)›using act_null "≡E"by blast
AOT_hence ‹Universal(x)› by (metis RN "≡E"(1) "null-uni-facts:2""sc-eq-fur:2""→E")
AOT_hence ‹∀F x[F]›using"≡dfE"[OF "df-null-uni:2"] "&E"by metis moreover AOT_have ‹¬∃F x[F]› using nullx "≡dfE"[OF "df-null-uni:1"] "&E"by metis ultimately AOT_show ‹p & ¬p›for p by (metis "cqt-further:1""raa-cor:3""→E") qed
AOT_theorem "null-uni-facts:6": ‹a\∅ = \ιx(A!x & ∀F (x[F] ≡ F ≠ F))› proof (rule "ab-obey:1"[unvarify x y, THEN"→E", THEN"→E"])
AOT_show ‹\ιx([A!]x & ∀F (x[F] ≡ F ≠ F))↓› by (simp add: "A-descriptions") next
AOT_show ‹a\∅↓› by (rule "=dfI"(2)[OF "df-null-uni-terms:1", OF "null-uni-uniq:3"])
(simp add: "null-uni-uniq:3") next
AOT_have ‹\ιx([A!]x & ∀F (x[F] ≡ F ≠ F))↓› by (simp add: "A-descriptions")
AOT_hence 1: ‹\ιx([A!]x & ∀F (x[F] ≡ F ≠ F)) = \ιx([A!]x & ∀F (x[F] ≡ F ≠ F))› using"rule=I:1"by blast
AOT_show ‹[A!]a\∅ & [A!]\ιx([A!]x & ∀F (x[F] ≡ F ≠ F))› apply (rule "=dfI"(2)[OF "df-null-uni-terms:1", OF "null-uni-uniq:3"];
rule "&I") apply (meson "≡dfE""Conjunction Simplification"(1) "df-null-uni:1""df-null-uni-terms:1""null-uni-facts:3" "null-uni-uniq:3""rule-id-df:2:a[zero]""→E") using"can-ab2"[unvarify y, OF "A-descriptions", THEN"→E", OF 1]. next
AOT_show ‹∀F (a\∅[F] ≡\ιx([A!]x & ∀F (x[F] ≡ F ≠ F))[F])› proof (rule GEN) fix F
AOT_have ‹¬a\∅[F]› by (rule "=dfI"(2)[OF "df-null-uni-terms:1", OF "null-uni-uniq:3"])
(metis (no_types, lifting) "≡dfE""&E"(2) "∨I"(2) "∨E"(3) "∃I"(2) "df-null-uni:1""df-null-uni-terms:1""null-uni-facts:3" "raa-cor:2""rule-id-df:2:a[zero]" "russell-axiom[enc,1].ψ_denotes_asm") moreover AOT_have ‹¬\ιx([A!]x & ∀F (x[F] ≡ F ≠ F))[F]› proof(rule "raa-cor:2")
AOT_assume 0: ‹\ιx([A!]x & ∀F (x[F] ≡ F ≠ F))[F]›
AOT_hence ‹\A(F ≠ F)› using"desc-nec-encode:2"[THEN"≡E"(1), OF 0] by blast moreover AOT_have ‹¬\A(F ≠ F)› using"≡dfE""id-act:2""id-eq:1""≡E"(2) "=-infix""raa-cor:3"by blast ultimately AOT_show ‹\A(F ≠ F) & ¬\A(F ≠ F)›by (rule "&I"span>) qed ultimately AOT_show ‹a\∅[F] ≡\ιx([A!]x & ∀F (x[F] ≡ F ≠ F))[F]› using"deduction-theorem""≡I""raa-cor:4"by blast qed qed
AOT_theorem "null-uni-facts:7": ‹aV = \ιx(A!x & ∀F (x[F] ≡ F = F))› proof (rule "ab-obey:1"[unvarify x y, THEN"→E", THEN"→E"])
AOT_show ‹\ιx([A!]x & ∀F (x[F] ≡ F = F))↓› by (simp add: "A-descriptions") next
AOT_show ‹aV↓› by (rule "=dfI"(2)[OF "df-null-uni-terms:2", OF "null-uni-uniq:4"])
(simp add: "null-uni-uniq:4") next
AOT_have ‹\ιx([A!]x & ∀F (x[F] ≡ F = F))↓› by (simp add: "A-descriptions")
AOT_hence 1: ‹\ιx([A!]x & ∀F (x[F] ≡ F = F)) = \ιx([A!]x & ∀F (x[F] ≡ F = F))› using"rule=I:1"by blast
AOT_show ‹[A!]aV & [A!]\ιx([A!]x & ∀F (x[F] ≡ F = F))› apply (rule "=dfI"(2)[OF "df-null-uni-terms:2", OF "null-uni-uniq:4"];
rule "&I") apply (meson "≡dfE""Conjunction Simplification"(1) "df-null-uni:2" "df-null-uni-terms:2""null-uni-facts:4""null-uni-uniq:4" "rule-id-df:2:a[zero]""→E") using"can-ab2"[unvarify y, OF "A-descriptions", THEN"→E", OF 1]. next
AOT_show ‹∀F (aV[F] ≡\ιx([A!]x & ∀F (x[F] ≡ F = F))[F])› proof (rule GEN) fix F
AOT_have ‹aV[F]› apply (rule "=dfI"(2)[OF "df-null-uni-terms:2", OF "null-uni-uniq:4"]) using"≡dfE""&E"(2) "df-null-uni:2""df-null-uni-terms:2" "null-uni-facts:4""null-uni-uniq:4""rule-id-df:2:a[zero]" "rule-ui:3"by blast moreover AOT_have ‹\ιx([A!]x & ∀F (x[F] ≡ F = F))[F]› using"RA[2]""desc-nec-encode:2""id-eq:1""≡E"(2) by fastforce ultimately AOT_show ‹aV[F] ≡\ιx([A!]x & ∀F (x[F] ≡ F = F))[F]› using"deduction-theorem""≡I"by simp qed qed
AOT_theorem "aclassical:1": ‹∀R∃x∃y(A!x & A!y & x ≠ y & [λz [R]zx] = [λz [R]zy])› proof(rule GEN) fix R
AOT_obtain a where a_prop: ‹A!a & ∀F (a[F] ≡∃y(A!y & F = [λz [R]zy] & 'font-size: 18px;'>¬y[F]))› using"A-objects"[axiom_inst] "∃E"[rotated] by fast
AOT_have a_enc: ‹a[λz [R]za]› proof (rule "raa-cor:1")
AOT_assume 0: ‹¬a[λz [R]za]›
AOT_hence ‹¬∃y(A!y & [λz [R]za] = [λz [R]zy] & ¬y[λz [R]za])› by (rule a_prop[THEN"&E"(2), THEN"∀E"(1)[where τ="«[λz [R]za]¬"], THEN"oth-class-taut:4:b"[THEN"≡E"(1)], THEN"≡E"(1), rotated]) "cqt:2[lambda]"
AOT_hence ‹∀y ¬(A!y & [λz [R]za] = [λz [R]zy] & ¬y[λz [R]za])› using"cqt-further:4""vdash-properties:10"by blast
AOT_hence ‹¬(A!a & [λz [R]za] = [λz [R]za] & ¬a[λz [R]za])› using"∀E"by blast
AOT_hence ‹(A!a & [λz [R]za] = [λz [R]za]) → a[λz [R]za]› by (metis "&I""deduction-theorem""raa-cor:3") moreover AOT_have ‹[λz [R]za] = [λz [R]za]› by (rule "=I") "cqt:2[lambda]" ultimately AOT_have ‹a[λz [R]za]› using a_prop[THEN"&E"(1)] "→E""&I"by blast
AOT_thus ‹a[λz [R]za] & ¬a[λz [R]za]› using0"&I"by blast qed
AOT_hence ‹∃y(A!y & [λz [R]za] = [λz [R]zy] & ¬y[λz [R]za])› by (rule a_prop[THEN"&E"(2), THEN"∀E"(1), THEN"≡E"(1), rotated]) "cqt:2" then AOT_obtain b where b_prop: ‹A!b & [λz [R]za] = [λz [R]zb] & ¬b[λz [R]za]› using"∃E"[rotated] by blast
AOT_have ‹a ≠ b› apply (rule "≡dfI"[OF "=-infix"]) using a_enc b_prop[THEN"&E"(2)] using"¬¬I""rule=E" id_sym "≡E"(4) "oth-class-taut:3:a" "raa-cor:3""reductio-aa:1"by fast
AOT_hence ‹A!a & A!b & a ≠ b & [λz [R]za] = [λz [R]zb]› using b_prop "&E" a_prop "&I"by meson
AOT_hence ‹∃y (A!a & A!y & a ≠ y & [λz [R]za] = [λz [R]zy])›by (rule "∃I")
AOT_thus ‹∃x∃y (A!x & A!y & x ≠ y & [λz [R]zx] = [λz [R]zy])›by (rule "∃I") qed
AOT_theorem "aclassical:2": ‹∀R∃x∃y(A!x & A!y & x ≠ y & [λz [R]xz] = [λz [R]yz])› proof(rule GEN) fix R
AOT_obtain a where a_prop: ‹A!a & ∀F (a[F] ≡∃y(A!y & F = [λz [R]yz] & 'font-size: 18px;'>¬y[F]))› using"A-objects"[axiom_inst] "∃E"[rotated] by fast
AOT_have a_enc: ‹a[λz [R]az]› proof (rule "raa-cor:1")
AOT_assume 0: ‹¬a[λz [R]az]›
AOT_hence ‹¬∃y(A!y & [λz [R]az] = [λz [R]yz] & ¬y[λz [R]az])› by (rule a_prop[THEN"&E"(2), THEN"∀E"(1)[where τ="«[λz [R]az]¬"], THEN"oth-class-taut:4:b"[THEN"≡E"(1)], THEN"≡E"(1), rotated]) "cqt:2[lambda]"
AOT_hence ‹∀y ¬(A!y & [λz [R]az] = [λz [R]yz] & ¬y[λz [R]az])› using"cqt-further:4""vdash-properties:10"by blast
AOT_hence ‹¬(A!a & [λz [R]az] = [λz [R]az] & ¬a[λz [R]az])› using"∀E"by blast
AOT_hence ‹(A!a & [λz [R]az] = [λz [R]az]) → a[λz [R]az]› by (metis "&I""deduction-theorem""raa-cor:3") moreover AOT_have ‹[λz [R]az] = [λz [R]az]› by (rule "=I") "cqt:2[lambda]" ultimately AOT_have ‹a[λz [R]az]› using a_prop[THEN"&E"(1)] "→E""&I"by blast
AOT_thus ‹a[λz [R]az] & ¬a[λz [R]az]› using0"&I"by blast qed
AOT_hence ‹∃y(A!y & [λz [R]az] = [λz [R]yz] & ¬y[λz [R]az])› by (rule a_prop[THEN"&E"(2), THEN"∀E"(1), THEN"≡E"(1), rotated]) "cqt:2" then AOT_obtain b where b_prop: ‹A!b & [λz [R]az] = [λz [R]bz] & ¬b[λz [R]az]› using"∃E"[rotated] by blast
AOT_have ‹a ≠ b› apply (rule "≡dfI"[OF "=-infix"]) using a_enc b_prop[THEN"&E"(2)] using"¬¬I""rule=E" id_sym "≡E"(4) "oth-class-taut:3:a" "raa-cor:3""reductio-aa:1"by fast
AOT_hence ‹A!a & A!b & a ≠ b & [λz [R]az] = [λz [R]bz]› using b_prop "&E" a_prop "&I"by meson
AOT_hence ‹∃y (A!a & A!y & a ≠ y & [λz [R]az] = [λz [R]yz])›by (rule "∃I")
AOT_thus ‹∃x∃y (A!x & A!y & x ≠ y & [λz [R]xz] = [λz [R]yz])›by (rule "∃I") qed
AOT_theorem "aclassical:3": ‹∀F∃x∃y(A!x & A!y & x ≠ y & [λ [F]x] = [λ [F]y])› proof(rule GEN) fix R
AOT_obtain a where a_prop: ‹A!a & ∀F (a[F] ≡∃y(A!y & F = [λz [R]y] & ¬y[F]))› using"A-objects"[axiom_inst] "∃E"[rotated] by fast
AOT_have den: ‹[λz [R]a]↓›by"cqt:2[lambda]"
AOT_have a_enc: ‹a[λz [R]a]› proof (rule "raa-cor:1")
AOT_assume 0: ‹¬a[λz [R]a]›
AOT_hence ‹¬∃y(A!y & [λz [R]a] = [λz [R]y] & ¬y[λz [R]a])› by (safe intro!: a_prop[THEN"&E"(2), THEN"∀E"(1)[where τ=‹«[λz [R]a]¬›], THEN"oth-class-taut:4:b"[THEN"≡E"(1)], THEN"≡E"(1), rotated] "cqt:2")
AOT_hence ‹∀y ¬(A!y & [λz [R]a] = [λz [R]y] & ¬y[λz [R]a])› using"cqt-further:4""→E"by blast
AOT_hence ‹¬(A!a & [λz [R]a] = [λz [R]a] & ¬a[λz [R]a])›using"∀E"by blast
AOT_hence ‹(A!a & [λz [R]a] = [λz [R]a]) → a[λz [R]a]› by (metis "&I""deduction-theorem""raa-cor:3")
AOT_hence ‹a[λz [R]a]› using a_prop[THEN"&E"(1)] "→E""&I" by (metis "rule=I:1" den)
AOT_thus ‹a[λz [R]a] & ¬a[λz [R]a]›by (metis "0""raa-cor:3") qed
AOT_hence ‹∃y(A!y & [λz [R]a] = [λz [R]y] & ¬y[λz [R]a])› by (rule a_prop[THEN"&E"(2), THEN"∀E"(1), OF den, THEN"≡E"(1), rotated]) then AOT_obtain b where b_prop: ‹A!b & [λz [R]a] = [λz [R]b] & ¬b[λz [R]a]› using"∃E"[rotated] by blast
AOT_have 1: ‹a ≠ b› apply (rule "≡dfI"[OF "=-infix"]) using a_enc b_prop[THEN"&E"(2)] using"¬¬I""rule=E" id_sym "≡E"(4) "oth-class-taut:3:a" "raa-cor:3""reductio-aa:1"by fast
AOT_have a: ‹[λ [R]a] = ([R]a)› apply (rule "lambda-predicates:3[zero]"[axiom_inst, unvarify p]) by (meson "log-prop-prop:2")
AOT_have b: ‹[λ [R]b] = ([R]b)› apply (rule "lambda-predicates:3[zero]"[axiom_inst, unvarify p]) by (meson "log-prop-prop:2")
AOT_have ‹[λ [R]a] = [λ [R]b]› apply (rule "rule=E"[rotated, OF a[THEN id_sym]]) apply (rule "rule=E"[rotated, OF b[THEN id_sym]]) apply (rule "identity:4"[THEN"≡dfI", OF "&I", rotated]) using b_prop "&E"apply blast apply (safe intro!: "&I") by (simp add: "log-prop-prop:2")+
AOT_hence ‹A!a & A!b & a ≠ b & [λ [R]a] = [λ [R]b]› using1 a_prop[THEN"&E"(1)] b_prop[THEN"&E"(1), THEN"&E"(1)] "&I"by auto
AOT_hence ‹∃y (A!a & A!y & a ≠ y & [λ [R]a] = [λ [R]y])›by (rule "∃I")
AOT_thus ‹∃x∃y (A!x & A!y & x ≠ y & [λ [R]x] = [λ [R]y])›by (rule "∃I") qed
AOT_theorem aclassical2: ‹∃x∃y (A!x & A!y & x ≠ y & ∀F ([F]x ≡ [F]y))› proof -
AOT_have ‹∃x ∃y ([A!]x & [A!]y & x ≠ y &
[λz [λxy ∀F ([F]x ≡ [F]y)]zx] =
[λz [λxy ∀F ([F]x ≡ [F]y)]zy])› by (rule "aclassical:1"[THEN"∀E"(1)[where τ="«[λxy ∀F ([F]x ≡ [F]y)]¬"]]) "cqt:2" then AOT_obtain x where‹∃y ([A!]x & [A!]y & x ≠ y &
[λz [λxy ∀F ([F]x ≡ [F]y)]zx] =
[λz [λxy ∀F ([F]x ≡ [F]y)]zy])› using"∃E"[rotated] by blast then AOT_obtain y where0: ‹([A!]x & [A!]y & x ≠ y &
[λz [λxy ∀F ([F]x ≡ [F]y)]zx] =
[λz [λxy ∀F ([F]x ≡ [F]y)]zy])› using"∃E"[rotated] by blast
AOT_have ‹[λz [λxy ∀F ([F]x ≡ [F]y)]zx]x› by (auto intro!: "β←C"(1) "cqt:2"
simp: "&I""ex:1:a" prod_denotesI "rule-ui:3" "oth-class-taut:3:a""universal-cor")
AOT_hence ‹[λz [λxy ∀F ([F]x ≡ [F]y)]zy]x› by (rule "rule=E"[rotated, OF 0[THEN"&E"(2)]])
AOT_hence ‹[λxy ∀F ([F]x ≡ [F]y)]xy› by (rule "β→C"(1))
AOT_hence ‹∀F ([F]x ≡ [F]y)› using"β→C"(1) old.prod.caseby fast
AOT_hence ‹[A!]x & [A!]y & x ≠ y & ∀F ([F]x ≡ [F]y)› using0"&E""&I"by blast
AOT_hence ‹∃y ([A!]x & [A!]y & x ≠ y & ∀F ([F]x ≡ [F]y))›by (rule "∃I")
AOT_thus ‹∃x∃y ([A!]x & [A!]y & x ≠ y & ∀F ([F]x ≡ [F]y))›by (rule "∃I"(2)) qed
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.2.40Bemerkung:
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.