(*<*)
theory AOT_Axioms
imports AOT_Definitions
begin
(*>*)
section ‹ Axioms of PLM›
AOT_axiom "pl:1" : ‹ φ → (ψ → φ)›
by (auto simp: AOT_sem_imp AOT_model_axiomI)
AOT_axiom "pl:2" : ‹ (φ → (ψ → χ)) → ((φ → ψ) → (φ → χ))›
by (auto simp: AOT_sem_imp AOT_model_axiomI)
AOT_axiom "pl:3" : ‹ (¬ φ → ¬ ψ) → ((¬ φ → ψ) → φ)›
by (auto simp: AOT_sem_imp AOT_sem_not AOT_model_axiomI)
AOT_axiom "cqt:1" : ‹ ∀ α φ{α} → (τ↓ → φ{τ})›
by (auto simp: AOT_sem_denotes AOT_sem_forall AOT_sem_imp AOT_model_axiomI)
AOT_axiom "cqt:2[const_var]" : ‹ α↓ ›
using AOT_sem_vars_denote by (rule AOT_model_axiomI)
AOT_axiom "cqt:2[lambda]" :
assumes ‹ INSTANCE_OF_CQT_2(φ)›
shows ‹ [λν1 ...νn φ{ν1 ...νn }]↓ ›
by (auto intro!: AOT_model_axiomI AOT_sem_cqt_2[OF assms])
AOT_axiom "cqt:2[lambda0]" :
shows ‹ [λ φ]↓ ›
by (auto intro!: AOT_model_axiomI
simp: AOT_sem_lambda_denotes "existence:3" [unfolded AOT_model_equiv_def])
AOT_axiom "cqt:3" : ‹ ∀ α (φ{α} → ψ{α}) → (∀ α φ{α} → ∀ α ψ{α})›
by (simp add: AOT_sem_forall AOT_sem_imp AOT_model_axiomI)
AOT_axiom "cqt:4" : ‹ φ → ∀ α φ›
by (simp add: AOT_sem_forall AOT_sem_imp AOT_model_axiomI)
AOT_axiom "cqt:5:a" : ‹ [Π]κ1 ...κn → (Π↓ & κ1 ...κn ↓ )›
by (simp add: AOT_sem_conj AOT_sem_denotes AOT_sem_exe
AOT_sem_imp AOT_model_axiomI)
AOT_axiom "cqt:5:a[1]" : ‹ [Π]κ → (Π↓ & κ↓ )›
using "cqt:5:a" AOT_model_axiomI by blast
AOT_axiom "cqt:5:a[2]" : ‹ [Π]κ1 κ2 → (Π↓ & κ1 ↓ & κ2 ↓ )›
by (rule AOT_model_axiomI)
(metis AOT_model_denotes_prod_def AOT_sem_conj AOT_sem_denotes AOT_sem_exe
AOT_sem_imp case_prodD)
AOT_axiom "cqt:5:a[3]" : ‹ [Π]κ1 κ2 κ3 → (Π↓ & κ1 ↓ & κ2 ↓ & κ3 ↓ )›
by (rule AOT_model_axiomI)
(metis AOT_model_denotes_prod_def AOT_sem_conj AOT_sem_denotes AOT_sem_exe
AOT_sem_imp case_prodD)
AOT_axiom "cqt:5:a[4]" : ‹ [Π]κ1 κ2 κ3 κ4 → (Π↓ & κ1 ↓ & κ2 ↓ & κ3 ↓ & κ4 ↓ )›
by (rule AOT_model_axiomI)
(metis AOT_model_denotes_prod_def AOT_sem_conj AOT_sem_denotes AOT_sem_exe
AOT_sem_imp case_prodD)
AOT_axiom "cqt:5:b" : ‹ κ1 ...κn [Π] → (Π↓ & κ1 ...κn ↓ )›
using AOT_sem_enc_denotes
by (auto intro!: AOT_model_axiomI simp: AOT_sem_conj AOT_sem_denotes AOT_sem_imp)+
AOT_axiom "cqt:5:b[1]" : ‹ κ[Π] → (Π↓ & κ↓ )›
using "cqt:5:b" AOT_model_axiomI by blast
AOT_axiom "cqt:5:b[2]" : ‹ κ1 κ2 [Π] → (Π↓ & κ1 ↓ & κ2 ↓ )›
by (rule AOT_model_axiomI)
(metis AOT_model_denotes_prod_def AOT_sem_conj AOT_sem_denotes
AOT_sem_enc_denotes AOT_sem_imp case_prodD)
AOT_axiom "cqt:5:b[3]" : ‹ κ1 κ2 κ3 [Π] → (Π↓ & κ1 ↓ & κ2 ↓ & κ3 ↓ )›
by (rule AOT_model_axiomI)
(metis AOT_model_denotes_prod_def AOT_sem_conj AOT_sem_denotes
AOT_sem_enc_denotes AOT_sem_imp case_prodD)
AOT_axiom "cqt:5:b[4]" : ‹ κ1 κ2 κ3 κ4 [Π] → (Π↓ & κ1 ↓ & κ2 ↓ & κ3 ↓ & κ4 ↓ )›
by (rule AOT_model_axiomI)
(metis AOT_model_denotes_prod_def AOT_sem_conj AOT_sem_denotes
AOT_sem_enc_denotes AOT_sem_imp case_prodD)
AOT_axiom "l-identity" : ‹ α = β → (φ{α} → φ{β})›
by (rule AOT_model_axiomI)
(simp add: AOT_sem_eq AOT_sem_imp)
AOT_act_axiom "logic-actual" : ‹ \ A φ → φ›
by (rule AOT_model_act_axiomI)
(simp add: AOT_sem_act AOT_sem_imp)
AOT_axiom "logic-actual-nec:1" : ‹ \ A ¬ φ ≡ ¬ \ A φ›
by (rule AOT_model_axiomI)
(simp add: AOT_sem_act AOT_sem_equiv AOT_sem_not)
AOT_axiom "logic-actual-nec:2" : ‹ \ A (φ → ψ) ≡ (\ A φ → \ A ψ)›
by (rule AOT_model_axiomI)
(simp add: AOT_sem_act AOT_sem_equiv AOT_sem_imp)
AOT_axiom "logic-actual-nec:3" : ‹ \ A (∀ α φ{α}) ≡ ∀ α \ A φ{α}›
by (rule AOT_model_axiomI)
(simp add: AOT_sem_act AOT_sem_equiv AOT_sem_forall AOT_sem_denotes)
AOT_axiom "logic-actual-nec:4" : ‹ \ A φ ≡ \ A \ A φ›
by (rule AOT_model_axiomI)
(simp add: AOT_sem_act AOT_sem_equiv)
AOT_axiom "qml:1" : ‹ ◻ (φ → ψ) → (◻ φ → ◻ ψ)›
by (rule AOT_model_axiomI)
(simp add: AOT_sem_box AOT_sem_imp)
AOT_axiom "qml:2" : ‹ ◻ φ → φ›
by (rule AOT_model_axiomI)
(simp add: AOT_sem_box AOT_sem_imp)
AOT_axiom "qml:3" : ‹ ♢ φ → ◻ ♢ φ›
by (rule AOT_model_axiomI)
(simp add: AOT_sem_box AOT_sem_dia AOT_sem_imp)
AOT_axiom "qml:4" : ‹ ♢ ∃ x (E!x & ¬ \ A E!x)›
using AOT_sem_concrete AOT_model_contingent
by (auto intro!: AOT_model_axiomI
simp: AOT_sem_box AOT_sem_dia AOT_sem_imp AOT_sem_exists
AOT_sem_denotes AOT_sem_conj AOT_sem_not AOT_sem_act
AOT_sem_exe)+
AOT_axiom "qml-act:1" : ‹ \ A φ → ◻ \ A φ›
by (rule AOT_model_axiomI)
(simp add: AOT_sem_act AOT_sem_box AOT_sem_imp)
AOT_axiom "qml-act:2" : ‹ ◻ φ ≡ \ A ◻ φ›
by (rule AOT_model_axiomI)
(simp add: AOT_sem_act AOT_sem_box AOT_sem_equiv)
AOT_axiom descriptions: ‹ x = \ ιx(φ{x}) ≡ ∀ z(\ A φ{z} ≡ z = x)›
proof (rule AOT_model_axiomI)
AOT_modally_strict {
AOT_show ‹ x = \ ιx(φ{x}) ≡ ∀ z(\ A φ{z} ≡ z = x)›
by (induct; simp add: AOT_sem_equiv AOT_sem_forall AOT_sem_act AOT_sem_eq)
(metis (no_types, opaque_lifting) AOT_sem_desc_denotes AOT_sem_desc_prop
AOT_sem_denotes)
}
qed
AOT_axiom "lambda-predicates:1" :
‹ [λν1 ...νn φ{ν1 ...νn }]↓ → [λν1 ...νn φ{ν1 ...νn }] = [λμ1 ...μn φ{μ1 ...μn }]›
by (rule AOT_model_axiomI)
(simp add: AOT_sem_denotes AOT_sem_eq AOT_sem_imp)
AOT_axiom "lambda-predicates:1[zero]" : ‹ [λ p]↓ → [λ p] = [λ p]›
by (rule AOT_model_axiomI)
(simp add: AOT_sem_denotes AOT_sem_eq AOT_sem_imp)
AOT_axiom "lambda-predicates:2" :
‹ [λx1 ...xn φ{x1 ...xn }]↓ → ([λx1 ...xn φ{x1 ...xn }]x1 ...xn ≡ φ{x1 ...xn })›
by (rule AOT_model_axiomI)
(simp add: AOT_sem_equiv AOT_sem_imp AOT_sem_lambda_beta AOT_sem_vars_denote)
AOT_axiom "lambda-predicates:3" : ‹ [λx1 ...xn [F]x1 ...xn ] = F›
by (rule AOT_model_axiomI)
(simp add: AOT_sem_lambda_eta AOT_sem_vars_denote)
AOT_axiom "lambda-predicates:3[zero]" : ‹ [λ p] = p›
by (rule AOT_model_axiomI)
(simp add: AOT_sem_eq AOT_sem_lambda0 AOT_sem_vars_denote)
AOT_axiom "safe-ext" :
‹ ([λν1 ...νn φ{ν1 ...νn }]↓ & ◻ ∀ ν1 ...∀ νn (φ{ν1 ...νn } ≡ ψ{ν1 ...νn })) →
[λν1 ...νn ψ{ν1 ...νn }]↓ ›
using AOT_sem_lambda_coex
by (auto intro!: AOT_model_axiomI simp: AOT_sem_imp AOT_sem_denotes AOT_sem_conj
AOT_sem_equiv AOT_sem_box AOT_sem_forall)
AOT_axiom "safe-ext[2]" :
‹ ([λν1 ν2 φ{ν1 ,ν2 }]↓ & ◻ ∀ ν1 ∀ ν2 (φ{ν1 , ν2 } ≡ ψ{ν1 , ν2 })) →
[λν1 ν2 ψ{ν1 ,ν2 }]↓ ›
using "safe-ext" [where φ="λ(x,y). φ x y" ]
by (simp add: AOT_model_axiom_def AOT_sem_denotes AOT_model_denotes_prod_def
AOT_sem_forall AOT_sem_imp AOT_sem_conj AOT_sem_equiv AOT_sem_box)
AOT_axiom "safe-ext[3]" :
‹ ([λν1 ν2 ν3 φ{ν1 ,ν2 ,ν3 }]↓ & ◻ ∀ ν1 ∀ ν2 ∀ ν3 (φ{ν1 , ν2 , ν3 } ≡ ψ{ν1 , ν2 , ν3 })) →
[λν1 ν2 ν3 ψ{ν1 ,ν2 ,ν3 }]↓ ›
using "safe-ext" [where φ="λ(x,y,z). φ x y z" ]
by (simp add: AOT_model_axiom_def AOT_model_denotes_prod_def AOT_sem_forall
AOT_sem_denotes AOT_sem_imp AOT_sem_conj AOT_sem_equiv AOT_sem_box)
AOT_axiom "safe-ext[4]" :
‹ ([λν1 ν2 ν3 ν4 φ{ν1 ,ν2 ,ν3 ,ν4 }]↓ &
◻ ∀ ν1 ∀ ν2 ∀ ν3 ∀ ν4 (φ{ν1 , ν2 , ν3 , ν4 } ≡ ψ{ν1 , ν2 , ν3 , ν4 })) →
[λν1 ν2 ν3 ν4 ψ{ν1 ,ν2 ,ν3 ,ν4 }]↓ ›
using "safe-ext" [where φ="λ(x,y,z,w). φ x y z w" ]
by (simp add: AOT_model_axiom_def AOT_model_denotes_prod_def AOT_sem_forall
AOT_sem_denotes AOT_sem_imp AOT_sem_conj AOT_sem_equiv AOT_sem_box)
AOT_axiom "nary-encoding[2]" :
‹ x1 x2 [F] ≡ x1 [λy [F]yx2 ] & x2 [λy [F]x1 y]›
by (rule AOT_model_axiomI)
(simp add: AOT_sem_conj AOT_sem_equiv AOT_enc_prod_def AOT_proj_enc_prod_def
AOT_sem_unary_proj_enc AOT_sem_vars_denote)
AOT_axiom "nary-encoding[3]" :
‹ x1 x2 x3 [F] ≡ x1 [λy [F]yx2 x3 ] & x2 [λy [F]x1 yx3 ] & x3 [λy [F]x1 x2 y]›
by (rule AOT_model_axiomI)
(simp add: AOT_sem_conj AOT_sem_equiv AOT_enc_prod_def AOT_proj_enc_prod_def
AOT_sem_unary_proj_enc AOT_sem_vars_denote)
AOT_axiom "nary-encoding[4]" :
‹ x1 x2 x3 x4 [F] ≡ x1 [λy [F]yx2 x3 x4 ] &
x2 [λy [F]x1 yx3 x4 ] &
x3 [λy [F]x1 x2 yx4 ] &
x4 [λy [F]x1 x2 x3 y]›
by (rule AOT_model_axiomI)
(simp add: AOT_sem_conj AOT_sem_equiv AOT_enc_prod_def AOT_proj_enc_prod_def
AOT_sem_unary_proj_enc AOT_sem_vars_denote)
AOT_axiom encoding: ‹ x[F] → ◻ x[F]›
using AOT_sem_enc_nec
by (auto intro!: AOT_model_axiomI simp: AOT_sem_imp AOT_sem_box)
AOT_axiom nocoder: ‹ O!x → ¬ ∃ F x[F]›
by (auto intro!: AOT_model_axiomI
simp: AOT_sem_imp AOT_sem_not AOT_sem_exists AOT_sem_ordinary
AOT_sem_dia
AOT_sem_lambda_beta[OF AOT_sem_ordinary_def_denotes,
OF AOT_sem_vars_denote])
(metis AOT_sem_nocoder)
AOT_axiom "A-objects" : ‹ ∃ x (A!x & ∀ F(x[F] ≡ φ{F}))›
proof (rule AOT_model_axiomI)
AOT_modally_strict {
AOT_obtain κ where ‹ κ↓ & ◻ ¬ E!κ & ∀ F (κ[F] ≡ φ{F})›
using AOT_sem_A_objects[of _ φ]
by (auto simp: AOT_sem_imp AOT_sem_box AOT_sem_forall AOT_sem_exists
AOT_sem_conj AOT_sem_not AOT_sem_dia AOT_sem_denotes
AOT_sem_equiv) blast
AOT_thus ‹ ∃ x (A!x & ∀ F(x[F] ≡ φ{F}))›
unfolding AOT_sem_exists
by (auto intro!: exI[where x=κ]
simp: AOT_sem_lambda_beta[OF AOT_sem_abstract_def_denotes]
AOT_sem_box AOT_sem_dia AOT_sem_not AOT_sem_denotes
AOT_var_of_term_inverse AOT_sem_conj
AOT_sem_equiv AOT_sem_forall AOT_sem_abstract)
}
qed
AOT_theorem universal_closure:
assumes ‹ for arbitrary α: φ{α} ∈ Λ\ ◻ ›
shows ‹ ∀ α φ{α} ∈ Λ\ ◻ ›
using assms
by (metis AOT_term_of_var_cases AOT_model_axiom_def AOT_sem_denotes AOT_sem_forall)
AOT_theorem act_closure:
assumes ‹ φ ∈ Λ\ ◻ ›
shows ‹ \ A φ ∈ Λ\ ◻ ›
using assms by (simp add: AOT_model_axiom_def AOT_sem_act)
AOT_theorem nec_closure:
assumes ‹ φ ∈ Λ\ ◻ ›
shows ‹ ◻ φ ∈ Λ\ ◻ ›
using assms by (simp add: AOT_model_axiom_def AOT_sem_box)
AOT_theorem universal_closure_act:
assumes ‹ for arbitrary α: φ{α} ∈ Λ›
shows ‹ ∀ α φ{α} ∈ Λ›
using assms
by (metis AOT_term_of_var_cases AOT_model_act_axiom_def AOT_sem_denotes
AOT_sem_forall)
text ‹ The following are not part of PLM and only hold in the extended models.
They are a generalization of the predecessor axiom.›
context AOT_ExtendedModel
begin
AOT_axiom indistinguishable_ord_enc_all:
‹ Π↓ & A!x & A!y & ∀ F ◻ ([F]x ≡ [F]y) →
((∀ G(∀ z(O!z → ◻ ([G]z ≡ [Π]z)) → x[G])) ≡
∀ G(∀ z(O!z → ◻ ([G]z ≡ [Π]z)) → y[G]))›
by (rule AOT_model_axiomI)
(auto simp: AOT_sem_equiv AOT_sem_imp AOT_sem_conj
AOT_sem_indistinguishable_ord_enc_all)
AOT_axiom indistinguishable_ord_enc_ex:
‹ Π↓ & A!x & A!y & ∀ F ◻ ([F]x ≡ [F]y) →
((∃ G(∀ z(O!z → ◻ ([G]z ≡ [Π]z)) & x[G])) ≡
∃ G(∀ z(O!z → ◻ ([G]z ≡ [Π]z)) & y[G]))›
by (rule AOT_model_axiomI)
(auto simp: AOT_sem_equiv AOT_sem_imp AOT_sem_conj
AOT_sem_indistinguishable_ord_enc_ex)
end
(*<*)
end
(*>*)
Messung V0.5 in Prozent C=93 H=98 G=95
¤ Dauer der Verarbeitung: 0.1 Sekunden
(vorverarbeitet am 2026-06-10)
¤
*© Formatika GbR, Deutschland