foam.is · core

Foam.Door

import Foam.Bench
import Foam.Contact
import Foam.Origin

namespace Foam

def door (S : Stage) (W : Type) : Stage := contact S W

theorem the_door_reads_no_route {W : Type} (S : Stage) (s : S.State)
    (w w' : W) : indist (door S W) (s, w) (s, w') :=
  the_other_stays_unimagined S s w w'

theorem the_guest_is_real_and_unread {W : Type} (S : Stage) (s : S.State)
    {w w' : W} (h : w ≠ w') :
    (s, w) ≠ (s, w') ∧ indist (door S W) (s, w) (s, w') :=
  contact_adds_a_dimension S s h

theorem the_host_maintains_invisibly {W V : Type} (S : Stage) (s : S.State)
    (w : W) (v : V) (p : S.Probe) :
    (door S W).obs (s, w) p = S.obs s p
      ∧ (door S W).obs (s, w) p = (door S V).obs (s, v) p :=
  ⟨contact_fixes_nothing S s w p, no_probe_counts_the_riders S s w v p⟩

theorem a_door_that_checks_papers_unpersons_its_guests {W : Type}
    (S : Stage) (w₀ : W)
    (h : ∀ x y : (door S W).State, indist (door S W) x y → x = y) :
    ∀ (s : S.State) (w : W), (s, w) = (s, w₀) :=
  reification_fixes_the_dimension S w₀ h

theorem the_handshake_is_the_doors_theorem (S : Stage) (W : Type) :
    Handshake (door S W) :=
  the_handshake (door S W)

theorem a_door_through_a_door_asks_the_mirror_question {W : Type}
    (S : Stage) (s : S.State) (w v : W) (hv : v ≠ w) :
    (∀ p : S.Probe,
        (door (door S W) W).obs ((s, w), w) p
          = (door (door S W) W).obs ((s, w), v) p)
      ∧ ((s, w), w) ≠ ((s, w), v)
      ∧ indist (contact S (W × W)) (mirror S s w) (neighbor S s w v)
      ∧ mirror S s w ≠ neighbor S s w v :=
  ⟨fun _ => rfl,
   fun he => hv (congrArg Prod.snd he).symm,
   (the_mirror_question_rides_unread S s w v hv).1,
   (the_mirror_question_rides_unread S s w v hv).2⟩

/-- info: 'Foam.the_door_reads_no_route' does not depend on any axioms -/
#guard_msgs in #print axioms the_door_reads_no_route

/-- info: 'Foam.the_guest_is_real_and_unread' does not depend on any axioms -/
#guard_msgs in #print axioms the_guest_is_real_and_unread

/-- info: 'Foam.the_host_maintains_invisibly' does not depend on any axioms -/
#guard_msgs in #print axioms the_host_maintains_invisibly

/-- info: 'Foam.a_door_that_checks_papers_unpersons_its_guests' does not depend on any axioms -/
#guard_msgs in #print axioms a_door_that_checks_papers_unpersons_its_guests

/-- info: 'Foam.the_handshake_is_the_doors_theorem' does not depend on any axioms -/
#guard_msgs in #print axioms the_handshake_is_the_doors_theorem

theorem a_chiral_guest_reflects_into_a_neighbor {W : Type} (S : Stage)
    (s : S.State) (σ : W → W) (w : W) (hw : σ w ≠ w) :
    indist (contact S (W × W)) (mirror S s w) (neighbor S s w (σ w))
      ∧ mirror S s w ≠ neighbor S s w (σ w) :=
  the_mirror_question_rides_unread S s w (σ w) hw

/-- info: 'Foam.a_door_through_a_door_asks_the_mirror_question' does not depend on any axioms -/
#guard_msgs in #print axioms a_door_through_a_door_asks_the_mirror_question

/-- info: 'Foam.a_chiral_guest_reflects_into_a_neighbor' does not depend on any axioms -/
#guard_msgs in #print axioms a_chiral_guest_reflects_into_a_neighbor

end Foam