subsection‹Exemplification of n-place-Relations.› text‹\label{TAO_Embedding_Exemplification}›
lift_definition exe0::"Π0==>o" (‹(_)›) is id .
lift_definition exe1::"Π1==>κ==>o" (‹(_,_)›) is "λ F x s w . (proper x) ∧ F (νυ (rep x)) s w" .
lift_definition exe2::"Π2==>κ==>κ==>o" (‹(_,_,_)›) is "λ F x y s w . (proper x) ∧ (proper y) ∧ F (νυ (rep x)) (νυ (rep y)) s w" .
lift_definition exe3::"Π3==>κ==>κ==>κ==>o" (‹(_,_,_,_)›) is "λ F x y z s w . (proper x) ∧ (proper y) ∧ (proper z) ∧ F (νυ (rep x)) (νυ (rep y)) (νυ (rep z)) s w" .
lift_definition not :: "o==>o" (‹\¬_› [54] 70) is "λ p s w . s = dj ∧¬p dj w ∨ s ≠ dj ∧ (I_NOT s (p s) w)" .
lift_definition impl :: "o==>o==>o" (infixl‹\→›51) is "λ p q s w . s = dj ∧ (p dj w ⟶ q dj w) ∨ s ≠ dj ∧ (I_IMPL s (p s) (q s) w)" .
lift_definition forall\<nu> :: "(ν==>o)==>o" (binder‹\∀\ν› [8] 9) is "λ φ s w . ∀ x :: ν . (φ x) s w" .
lift_definition forall0 :: "(Π0==>o)==>o" (binder‹\∀0› [8] 9) is "λ φ s w . ∀ x :: Π0 . (φ x) s w" .
lift_definition forall1 :: "(Π1==>o)==>o" (binder‹\∀1› [8] 9) is "λ φ s w . ∀ x :: Π1 . (φ x) s w" .
lift_definition forall2 :: "(Π2==>o)==>o" (binder‹\∀2› [8] 9) is "λ φ s w . ∀ x :: Π2 . (φ x) s w" .
lift_definition forall3 :: "(Π3==>o)==>o" (binder‹\∀3› [8] 9) is "λ φ s w . ∀ x :: Π3 . (φ x) s w" .
lift_definition forall\<o> :: "(o==>o)==>o" (binder‹\∀\o› [8] 9) is "λ φ s w . ∀ x :: o . (φ x) s w" .
lift_definition box :: "o==>o" (‹\◻_› [62] 63) is "λ p s w . ∀ v . p s v" .
lift_definition actual :: "o==>o" (‹\A_› [64] 65) is "λ p s w . p s dw" .
text‹
begin{remark}
The connectives behave classically if evaluated for the actual state @{term "dj"},
whereas their behavior is governed by uninterpreted constants for any
other state.
end{remark} ›
text‹
begin{remark}
Lambda expressions have to convert maps from individuals to propositions to
relations that are represented by maps from urelements to truth values.
end{remark} ›
lift_definition lambdabinder0 :: "o==>Π0" (‹\λ0›) is id .
lift_definition lambdabinder1 :: "(ν==>o)==>Π1" (binder‹\λ› [8] 9) is "λ φ u s w . ∃ x . νυ x = u ∧ φ x s w" .
lift_definition lambdabinder2 :: "(ν==>ν==>o)==>Π2" (‹\λ2›) is "λ φ u v s w . ∃ x y . νυ x = u ∧ νυ y = v ∧ φ x y s w" .
lift_definition lambdabinder3 :: "(ν==>ν==>ν==>o)==>Π3" (‹\λ3›) is "λ φ u v r s w . ∃ x y z . νυ x = u ∧ νυ y = v ∧ νυ z = r ∧ φ x y z s w" .
text‹
begin{remark}
The embedding introduces the notion of \emph{proper} maps from
individual terms to propositions.
Such a map is proper if and only if for all proper individual terms its truth evaluation in the
actual state only depends on the urelements corresponding to the individuals the terms denote.
Proper maps are exactly those maps that - when used as matrix of a lambda-expression - unconditionally
allow beta-reduction.
end{remark} ›
lift_definition IsProperInX :: "(κ==>o)==>bool"is "λ φ . ∀ x v . (∃ a . νυ a = νυ x ∧ (φ (aP) dj v)) = (φ (xP) dj v)" .
lift_definition IsProperInXY :: "(κ==>κ==>o)==>bool"is "λ φ . ∀ x y v . (∃ a b . νυ a = νυ x ∧ νυ b = νυ y ∧ (φ (aP) (bP) dj v)) = (φ (xP) (yP) dj v)" .
lift_definition IsProperInXYZ :: "(κ==>κ==>κ==>o)==>bool"is "λ φ . ∀ x y z v . (∃ a b c . νυ a = νυ x ∧ νυ b = νυ y ∧ νυ c = νυ z ∧ (φ (aP) (bP) (cP) dj v)) = (φ (xP) (yP) (zP) dj v)" .
lift_definition valid_in :: "i==>o==>bool" (infixl‹⊨›5) is "λ v φ . φ dj v" .
text‹
begin{remark}
A formula is considered semantically valid for a possible world,
if it evaluates to @{term "True"} for the actual state @{term "dj"}
and the given possible world.
end{remark} ›
abbreviation (input) OrdinaryObjectsPossiblyConcrete where "OrdinaryObjectsPossiblyConcrete ≡∀ x . ∃ v . ConcreteInWorld x v" abbreviation (input) PossiblyContingentObjectExists where "PossiblyContingentObjectExists ≡∃ x v . ConcreteInWorld x v ∧ (∃ w . ¬ ConcreteInWorld x w)" abbreviation (input) PossiblyNoContingentObjectExists where "PossiblyNoContingentObjectExists ≡∃ w . ∀ x . ConcreteInWorld x w ⟶ (∀ v . ConcreteInWorld x v)" axiomatizationwhere
OrdinaryObjectsPossiblyConcreteAxiom: "OrdinaryObjectsPossiblyConcrete" and PossiblyContingentObjectExistsAxiom: "PossiblyContingentObjectExists" and PossiblyNoContingentObjectExistsAxiom: "PossiblyNoContingentObjectExists"
text‹
begin{remark}
Care has to be taken that the defined notion of concreteness
coincides with the meta-logical distinction between
abstract objects and ordinary objects. Furthermore the axioms about
concreteness have to be satisfied. This is achieved by introducing an
uninterpreted constant @{term "ConcreteInWorld"} that determines whether
an ordinary object is concrete in a given possible world. This constant is
axiomatized, such that all ordinary objects are possibly concrete, contingent
objects possibly exist and possibly no contingent objects exist.
end{remark} ›
lift_definition Concrete::"Π1" (‹E!›) is "λ u s w . case u of ψυ x ==> ConcreteInWorld x w | _ ==> False" .
text‹
begin{remark}
Concreteness of ordinary objects is now defined using this
axiomatized uninterpreted constant. Abstract objects on the other
hand are never concrete.
end{remark} ›
subsection‹Collection of Meta-Definitions› text‹\label{TAO_Embedding_meta_defs}›
declare makeκ_inverse[meta_aux] evalκ_inverse[meta_aux]
makeo_inverse[meta_aux] evalo_inverse[meta_aux]
makeΠ1_inverse[meta_aux] evalΠ1_inverse[meta_aux]
makeΠ2_inverse[meta_aux] evalΠ2_inverse[meta_aux]
makeΠ3_inverse[meta_aux] evalΠ3_inverse[meta_aux] lemma νυ_ψν_is_ψυ[meta_aux]: "νυ (ψν x) = ψυ x"by (simp add: νυ_def) lemma rep_proper_id[meta_aux]: "rep (xP) = x" by (simp add: meta_aux νκ_def rep_def) lemma νκ_proper[meta_aux]: "proper (xP)" by (simp add: meta_aux νκ_def proper_def) lemma no_αψ[meta_aux]: "¬(νυ (αν x) = ψυ y)"by (simp add: νυ_def) lemma no_σψ[meta_aux]: "¬(συ x = ψυ y)"by blast lemma νυ_surj[meta_aux]: "surj νυ" using ασ_surj unfolding νυ_def surj_def by (metis ν.simps(5) ν.simps(6) υ.exhaust comp_apply) lemma lambdaΠ1_aux[meta_aux]: "makeΠ1 (λu s w. ∃x. νυ x = u ∧ evalΠ1 F (νυ x) s w) = F" proof - have"∧ u s w φ . (∃ x . νυ x = u ∧ φ (νυ x) (s::j) (w::i)) ⟷ φ u s w" using νυ_surj unfolding surj_def by metis thus ?thesis apply transfer by simp qed lemma lambdaΠ2_aux[meta_aux]: "makeΠ2 (λu v s w. ∃x . νυ x = u ∧ (∃ y . νυ y = v ∧ evalΠ2 F (νυ x) (νυ y) s w)) = F" proof - have"∧ u v (s ::j) (w::i) φ . (∃ x . νυ x = u ∧ (∃ y . νυ y = v ∧ φ (νυ x) (νυ y) s w)) ⟷ φ u v s w" using νυ_surj unfolding surj_def by metis thus ?thesis apply transfer by simp qed lemma lambdaΠ3_aux[meta_aux]: "makeΠ3 (λu v r s w. ∃x. νυ x = u ∧ (∃y. νυ y = v ∧ (∃z. νυ z = r ∧ evalΠ3 F (νυ x) (νυ y) (νυ z) s w))) = F" proof - have"∧ u v r (s::j) (w::i) φ . ∃x. νυ x = u ∧ (∃y. νυ y = v ∧ (∃z. νυ z = r ∧ φ (νυ x) (νυ y) (νυ z) s w)) = φ u v r s w" using νυ_surj unfolding surj_def by metis thus ?thesis apply transfer apply (rule ext)+ by metis qed (*<*) end (*>*)
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.