Theory Proposition3
section ‹ Proposition3 ›
text ‹This theory collects together earlier results to show that
worldview transformations can be approximated by affine transformations
that have various useful properties. ›
theory Proposition3
imports Proposition1 Proposition2 AxEventMinus
begin
class Proposition3 = Proposition1 + Proposition2 + AxEventMinus
begin
lemma lemProposition3:
assumes "m sees k at x"
shows "∃ A y . (wvtFunc m k x y)
∧ (affineApprox A (wvtFunc m k) x)
∧ (applyToSet (asFunc A) (coneSet m x) ⊆ coneSet k y)
∧ (coneSet k y = regularConeSet y)"
proof -
define g1 where g1: "g1 = (λ y . wvtFunc m k x y)"
define g2 where g2: "g2 = (λ A . affineApprox A (wvtFunc m k) x)"
define g3 where g3: "g3 = (λ A y . applyToSet (asFunc A) (coneSet m x) ⊆ coneSet k y)"
define g4 where g4: "g4 = (λ y . coneSet k y = regularConeSet y)"
have "axEventMinus m k x" using AxEventMinus by simp
hence "(∃ q . ∀ b . ( (m sees b at x) ⟷ (k sees b at q)))"
using assms by simp
then obtain y where y: "∀ b . ( (m sees b at x) ⟷ (k sees b at y))" by auto
hence "ev m x = ev k y" by blast
hence goal1: "g1 y" using assms g1 by auto
have "axDiff m k x" using AxDiff by simp
hence "∃ A . affineApprox A (wvtFunc m k) x" using g1 goal1 by blast
then obtain A where goal2: "g2 A" using g2 by auto
have "applyToSet (asFunc A) (coneSet m x) ⊆ coneSet k (A x)"
using g2 goal2 lemProposition2[of "m" "k" "A" "x"]
by auto
moreover have "A x = y"
using goal1 goal2 g1 g2 lemAffineEqualAtBase[of "wvtFunc m k" "A" "x"]
by blast
ultimately have goal3: "g3 A y" using g3 by auto
have "k sees k at y" using assms(1) g1 goal1 by fastforce
hence "∀ p . cone k y p = regularCone y p"
using lemProposition1[of "y" "k"] by auto
hence goal4: "g4 y" using g4 by force
hence "∃ A y . (g1 y) ∧ (g2 A) ∧ (g3 A y) ∧ (g4 y)"
using goal1 goal2 goal3 goal4 by blast
thus ?thesis using g1 g2 g3 g4 by fastforce
qed
end
end