Documentation

ConNF.FOA.BaseAction

Base actions #

In this file, we define base actions.

Main declarations #

  • atoms : Rel ConNF.Atom ConNF.Atom
  • nearLitters : Rel ConNF.NearLitter ConNF.NearLitter
  • atoms_dom_small' : ConNF.Small self.atoms.dom
  • nearLitters_dom_small' : ConNF.Small self.nearLitters.dom
  • atoms_oneOne' : self.atoms.OneOne
  • mem_iff_mem' : ∀ {a₁ a₂ : ConNF.Atom} {N₁ N₂ : ConNF.NearLitter}, self.atoms a₁ a₂self.nearLitters N₁ N₂(a₁ N₁ a₂ N₂)
  • litter_eq_litter_iff' : ∀ {N₁ N₂ N₃ N₄ : ConNF.NearLitter}, self.nearLitters N₁ N₃self.nearLitters N₂ N₄(N₁ = N₂ N₃ = N₄)
  • interference_subset_dom' : ∀ {N₁ N₂ : ConNF.NearLitter}, N₁ self.nearLitters.domN₂ self.nearLitters.domConNF.interference N₁ N₂ self.atoms.dom
  • interference_subset_codom' : ∀ {N₁ N₂ : ConNF.NearLitter}, N₁ self.nearLitters.codomN₂ self.nearLitters.codomConNF.interference N₁ N₂ self.atoms.codom
Instances For
    theorem ConNF.BaseAction.mem_symmDiff_iff_mem_symmDiff [ConNF.Params] {ξ : ConNF.BaseAction} {a₁ a₂ : ConNF.Atom} {N₁ N₂ N₃ N₄ : ConNF.NearLitter} :
    ξ.atoms a₁ a₂ξ.nearLitters N₁ N₂ξ.nearLitters N₃ N₄(a₁ symmDiff N₁ N₃ a₂ symmDiff N₂ N₄)
    theorem ConNF.BaseAction.nearLitters_coinjective [ConNF.Params] (ξ : ConNF.BaseAction) :
    ξ.nearLitters.Coinjective
    theorem ConNF.BaseAction.nearLitters_injective [ConNF.Params] (ξ : ConNF.BaseAction) :
    ξ.nearLitters.Injective
    Equations
    • ConNF.BaseAction.instBaseActionClass = { atoms := ConNF.BaseAction.atoms, atoms_oneOne := , nearLitters := ConNF.BaseAction.nearLitters, nearLitters_oneOne := }
    theorem ConNF.BaseAction.ext [ConNF.Params] {ξ ζ : ConNF.BaseAction} (atoms : ξ = ζ) (nearLitters : ξ = ζ) :
    ξ = ζ
    theorem ConNF.BaseAction.atoms_dom_small [ConNF.Params] (ξ : ConNF.BaseAction) :
    theorem ConNF.BaseAction.atoms_oneOne [ConNF.Params] (ξ : ConNF.BaseAction) :
    ξ.OneOne
    theorem ConNF.BaseAction.mem_iff_mem [ConNF.Params] {ξ : ConNF.BaseAction} {a₁ a₂ : ConNF.Atom} {N₁ N₂ : ConNF.NearLitter} :
    ξ a₁ a₂ξ N₁ N₂(a₁ N₁ a₂ N₂)
    theorem ConNF.BaseAction.litter_eq_litter_iff [ConNF.Params] {ξ : ConNF.BaseAction} {N₁ N₂ N₃ N₄ : ConNF.NearLitter} :
    ξ N₁ N₃ξ N₂ N₄(N₁ = N₂ N₃ = N₄)
    theorem ConNF.BaseAction.interference_subset_dom [ConNF.Params] {ξ : ConNF.BaseAction} {N₁ N₂ : ConNF.NearLitter} :
    N₁ ξ.domN₂ ξ.domConNF.interference N₁ N₂ ξ.dom
    theorem ConNF.BaseAction.interference_subset_codom [ConNF.Params] {ξ : ConNF.BaseAction} {N₁ N₂ : ConNF.NearLitter} :
    N₁ ξ.codomN₂ ξ.codomConNF.interference N₁ N₂ ξ.codom
    theorem ConNF.BaseAction.atoms_codom_small [ConNF.Params] (ξ : ConNF.BaseAction) :
    def ConNF.BaseAction.inv [ConNF.Params] (ξ : ConNF.BaseAction) :
    ConNF.BaseAction
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      instance ConNF.BaseAction.instInv [ConNF.Params] :
      Inv ConNF.BaseAction
      Equations
      • ConNF.BaseAction.instInv = { inv := ConNF.BaseAction.inv }
      @[simp]
      theorem ConNF.BaseAction.inv_atoms [ConNF.Params] (ξ : ConNF.BaseAction) :
      ξ⁻¹ = ξ.inv
      @[simp]
      theorem ConNF.BaseAction.inv_nearLitters [ConNF.Params] (ξ : ConNF.BaseAction) :
      ξ⁻¹ = ξ.inv
      @[simp]
      theorem ConNF.BaseAction.inv_inv [ConNF.Params] (ξ : ConNF.BaseAction) :
      theorem ConNF.BaseAction.nearLitters_oneOne [ConNF.Params] (ξ : ConNF.BaseAction) :
      ξ.OneOne
      inductive ConNF.BaseAction.litters [ConNF.Params] (ξ : ConNF.BaseAction) :
      Rel ConNF.Litter ConNF.Litter
      • mk: ∀ [inst : ConNF.Params] {ξ : ConNF.BaseAction} {N₁ N₂ : ConNF.NearLitter}, ξ N₁ N₂ξ.litters N₁ N₂
      Instances For
        instance ConNF.BaseAction.instSuperLRelLitter [ConNF.Params] :
        ConNF.SuperL ConNF.BaseAction (Rel ConNF.Litter ConNF.Litter)
        Equations
        • ConNF.BaseAction.instSuperLRelLitter = { superL := ConNF.BaseAction.litters }
        theorem ConNF.BaseAction.litters_iff [ConNF.Params] {ξ : ConNF.BaseAction} (L₁ L₂ : ConNF.Litter) :
        ξ L₁ L₂ ∃ (N₁ : ConNF.NearLitter) (N₂ : ConNF.NearLitter), N₁ = L₁ N₂ = L₂ ξ N₁ N₂
        theorem ConNF.BaseAction.litters_coinjective [ConNF.Params] (ξ : ConNF.BaseAction) :
        ξ.Coinjective
        theorem ConNF.BaseAction.litters_dom_small [ConNF.Params] (ξ : ConNF.BaseAction) :
        theorem ConNF.BaseAction.litters_codom_small [ConNF.Params] (ξ : ConNF.BaseAction) :
        @[simp]
        theorem ConNF.BaseAction.inv_litters [ConNF.Params] (ξ : ConNF.BaseAction) :
        ξ⁻¹ = ξ.inv
        theorem ConNF.BaseAction.litters_injective [ConNF.Params] (ξ : ConNF.BaseAction) :
        ξ.Injective
        theorem ConNF.BaseAction.litters_oneOne [ConNF.Params] (ξ : ConNF.BaseAction) :
        ξ.OneOne
        instance ConNF.BaseAction.instLE [ConNF.Params] :
        LE ConNF.BaseAction
        Equations
        • ConNF.BaseAction.instLE = { le := fun (ξ ζ : ConNF.BaseAction) => ξ ζ ξ = ζ }
        Equations
        theorem ConNF.BaseAction.litters_eq_of_le [ConNF.Params] {ξ ζ : ConNF.BaseAction} (h : ξ ζ) :
        ξ = ζ
        theorem ConNF.BaseAction.inv_le_inv [ConNF.Params] {ξ ζ : ConNF.BaseAction} (h : ξ⁻¹ ζ⁻¹) :
        ξ ζ
        theorem ConNF.BaseAction.inv_le [ConNF.Params] {ξ ζ : ConNF.BaseAction} (h : ξ⁻¹ ζ) :
        ξ ζ⁻¹
        theorem ConNF.BaseAction.inv_le_inv_iff [ConNF.Params] {ξ ζ : ConNF.BaseAction} :
        ξ⁻¹ ζ⁻¹ ξ ζ
        def ConNF.BaseAction.extend [ConNF.Params] (ξ : ConNF.BaseAction) (r : Rel ConNF.Atom ConNF.Atom) (r_dom_small : ConNF.Small r.dom) (r_oneOne : r.OneOne) (r_dom_disjoint : Disjoint ξ.dom r.dom) (r_codom_disjoint : Disjoint ξ.codom r.codom) (r_mem_iff_mem : ∀ {a₁ a₂ : ConNF.Atom} {N₁ N₂ : ConNF.NearLitter}, r a₁ a₂ξ N₁ N₂(a₁ N₁ a₂ N₂)) :
        ConNF.BaseAction

        A definition that can be used to reduce the proof obligations of extending a base action.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          theorem ConNF.BaseAction.le_extend [ConNF.Params] {ξ : ConNF.BaseAction} {r : Rel ConNF.Atom ConNF.Atom} {r_dom_small : ConNF.Small r.dom} {r_oneOne : r.OneOne} {r_dom_disjoint : Disjoint ξ.dom r.dom} {r_codom_disjoint : Disjoint ξ.codom r.codom} {r_mem_iff_mem : ∀ {a₁ a₂ : ConNF.Atom} {N₁ N₂ : ConNF.NearLitter}, r a₁ a₂ξ N₁ N₂(a₁ N₁ a₂ N₂)} :
          ξ ξ.extend r r_dom_small r_oneOne r_dom_disjoint r_codom_disjoint
          structure ConNF.BaseAction.Nice [ConNF.Params] (ξ : ConNF.BaseAction) :
          Instances For
            theorem ConNF.BaseAction.nice_iff [ConNF.Params] (ξ : ConNF.BaseAction) :
            ξ.Nice (∀ Nξ.dom, symmDiff N N ξ.dom) Nξ.codom, symmDiff N N ξ.codom
            theorem ConNF.BaseAction.Nice.mem_litter_dom_iff [ConNF.Params] {ξ : ConNF.BaseAction} (h : ξ.Nice) {N : ConNF.NearLitter} (hN : N ξ.dom) {a : ConNF.Atom} (ha : aξ.dom) :
            theorem ConNF.BaseAction.Nice.mem_litter_codom_iff [ConNF.Params] {ξ : ConNF.BaseAction} (h : ξ.Nice) {N : ConNF.NearLitter} (hN : N ξ.codom) {a : ConNF.Atom} (ha : aξ.codom) :

            Extending orbits inside near-litters #

            def ConNF.BaseAction.inside [ConNF.Params] (ξ : ConNF.BaseAction) :
            Set ConNF.Atom

            The set of atoms contained in near-litters but not the corresponding litters.

            Equations
            Instances For
              theorem ConNF.BaseAction.inside_small [ConNF.Params] (ξ : ConNF.BaseAction) :
              ConNF.Small ξ.inside
              structure ConNF.BaseAction.InsideCandidate [ConNF.Params] (ξ : ConNF.BaseAction) (L : ConNF.Litter) (a : ConNF.Atom) :
              • litter_eq : a = L
              • not_mem_codom : aξ.codom
              • mem_nearLitter : ∀ {N : ConNF.NearLitter}, N ξ.codomN = La N
              Instances For
                theorem ConNF.BaseAction.insideCandidate_iff [ConNF.Params] (ξ : ConNF.BaseAction) (L : ConNF.Litter) (a : ConNF.Atom) :
                ξ.InsideCandidate L a a = L aξ.codom ∀ {N : ConNF.NearLitter}, N ξ.codomN = La N
                theorem ConNF.BaseAction.insideCandidates_not_small [ConNF.Params] (ξ : ConNF.BaseAction) (L : ConNF.Litter) :
                ¬ConNF.Small {a : ConNF.Atom | ξ.InsideCandidate L a}
                theorem ConNF.BaseAction.card_inside_lt_card_insideCandidates [ConNF.Params] (ξ : ConNF.BaseAction) (L : ConNF.Litter) :
                Cardinal.mk ξ.inside < Cardinal.mk {a : ConNF.Atom | ξ.InsideCandidate L a}
                def ConNF.BaseAction.insideMap [ConNF.Params] (ξ : ConNF.BaseAction) (L : ConNF.Litter) :
                ξ.inside {a : ConNF.Atom | ξ.InsideCandidate L a}
                Equations
                Instances For
                  theorem ConNF.BaseAction.insideMap_litter_eq [ConNF.Params] {ξ : ConNF.BaseAction} (L : ConNF.Litter) (x : ξ.inside) :
                  (↑((ξ.insideMap L) x)) = L
                  theorem ConNF.BaseAction.insideMap_not_mem_codom [ConNF.Params] {ξ : ConNF.BaseAction} (L : ConNF.Litter) (x : ξ.inside) :
                  ((ξ.insideMap L) x)ξ.codom
                  theorem ConNF.BaseAction.insideMap_mem_nearLitter [ConNF.Params] {ξ : ConNF.BaseAction} (L : ConNF.Litter) (x : ξ.inside) {N : ConNF.NearLitter} :
                  N ξ.codomN = L((ξ.insideMap L) x) N
                  def ConNF.BaseAction.insideRel [ConNF.Params] (ξ : ConNF.BaseAction) :
                  Rel ConNF.Atom ConNF.Atom
                  Equations
                  • ξ.insideRel a₁ a₂ = ∃ (N₁ : ConNF.NearLitter) (N₂ : ConNF.NearLitter) (h : N₁ ξ.dom a₁ N₁ a₁ N₁), ξ N₁ N₂ a₁ξ.dom a₂ = ((ξ.insideMap N₂) a₁, )
                  Instances For
                    theorem ConNF.BaseAction.insideRel_dom_small [ConNF.Params] (ξ : ConNF.BaseAction) :
                    ConNF.Small ξ.insideRel.dom
                    theorem ConNF.BaseAction.insideRel_injective [ConNF.Params] (ξ : ConNF.BaseAction) :
                    ξ.insideRel.Injective
                    theorem ConNF.BaseAction.insideRel_coinjective [ConNF.Params] (ξ : ConNF.BaseAction) :
                    ξ.insideRel.Coinjective
                    theorem ConNF.BaseAction.insideRel_oneOne [ConNF.Params] (ξ : ConNF.BaseAction) :
                    ξ.insideRel.OneOne
                    theorem ConNF.BaseAction.insideRel_dom [ConNF.Params] (ξ : ConNF.BaseAction) :
                    Disjoint ξ.dom ξ.insideRel.dom
                    theorem ConNF.BaseAction.insideRel_codom [ConNF.Params] (ξ : ConNF.BaseAction) :
                    Disjoint ξ.codom ξ.insideRel.codom
                    theorem ConNF.BaseAction.insideRel_mem_iff_mem [ConNF.Params] {ξ : ConNF.BaseAction} {a₁ a₂ : ConNF.Atom} {N₁ N₂ : ConNF.NearLitter} (ha : ξ.insideRel a₁ a₂) (hN : ξ N₁ N₂) :
                    a₁ N₁ a₂ N₂
                    def ConNF.BaseAction.insideExtension [ConNF.Params] (ξ : ConNF.BaseAction) :
                    ConNF.BaseAction
                    Equations
                    • ξ.insideExtension = ξ.extend ξ.insideRel
                    Instances For
                      theorem ConNF.BaseAction.insideExtension_atoms [ConNF.Params] (ξ : ConNF.BaseAction) :
                      ξ.insideExtension = ξ ξ.insideRel
                      theorem ConNF.BaseAction.le_insideExtension [ConNF.Params] (ξ : ConNF.BaseAction) :
                      ξ ξ.insideExtension
                      theorem ConNF.BaseAction.insideExtension_spec [ConNF.Params] {ξ : ConNF.BaseAction} (N : ConNF.NearLitter) (hN : N ξ.dom) :
                      N \ N ξ.insideExtension.dom

                      Extending orbits outside near-litters #

                      structure ConNF.BaseAction.Sandbox [ConNF.Params] (ξ : ConNF.BaseAction) (L : ConNF.Litter) :
                      • atom_not_mem : aξ.codom, a L
                      • nearLitter_not_mem : ∀ (N : ConNF.NearLitter) (a : ConNF.Atom), a = LN ξ.codomaN
                      Instances For
                        theorem ConNF.BaseAction.sandbox_iff [ConNF.Params] (ξ : ConNF.BaseAction) (L : ConNF.Litter) :
                        ξ.Sandbox L (∀ aξ.codom, a L) ∀ (N : ConNF.NearLitter) (a : ConNF.Atom), a = LN ξ.codomaN
                        def ConNF.BaseAction.not_sandbox_eq [ConNF.Params] (ξ : ConNF.BaseAction) :
                        {L : ConNF.Litter | ¬ξ.Sandbox L} = (⋃ aξ.codom, {a}) Nξ.codom, aN, {a}
                        Equations
                        • =
                        Instances For
                          theorem ConNF.BaseAction.card_not_sandbox [ConNF.Params] (ξ : ConNF.BaseAction) :
                          Cardinal.mk {L : ConNF.Litter | ¬ξ.Sandbox L} Cardinal.mk ConNF.κ
                          theorem ConNF.BaseAction.exists_sandbox [ConNF.Params] (ξ : ConNF.BaseAction) :
                          {L : ConNF.Litter | ξ.Sandbox L}.Nonempty
                          def ConNF.BaseAction.sandbox [ConNF.Params] (ξ : ConNF.BaseAction) :
                          ConNF.Litter
                          Equations
                          • ξ.sandbox = .some
                          Instances For
                            theorem ConNF.BaseAction.sandbox_spec [ConNF.Params] (ξ : ConNF.BaseAction) :
                            ξ.Sandbox ξ.sandbox
                            def ConNF.BaseAction.outside [ConNF.Params] (ξ : ConNF.BaseAction) :
                            Set ConNF.Atom
                            Equations
                            Instances For
                              theorem ConNF.BaseAction.outside_small [ConNF.Params] (ξ : ConNF.BaseAction) :
                              ConNF.Small ξ.outside
                              theorem ConNF.BaseAction.card_outside_lt_card_sandbox [ConNF.Params] (ξ : ConNF.BaseAction) :
                              Cardinal.mk ξ.outside < Cardinal.mk ξ.sandbox
                              def ConNF.BaseAction.outsideMap [ConNF.Params] (ξ : ConNF.BaseAction) :
                              ξ.outside ξ.sandbox
                              Equations
                              Instances For
                                theorem ConNF.BaseAction.outsideMap_litter [ConNF.Params] {ξ : ConNF.BaseAction} (x : ξ.outside) :
                                ξ.Sandbox (↑(ξ.outsideMap x))
                                def ConNF.BaseAction.outsideRel [ConNF.Params] (ξ : ConNF.BaseAction) :
                                Rel ConNF.Atom ConNF.Atom
                                Equations
                                • ξ.outsideRel a₁ a₂ = (a₁ξ.dom ∃ (h : a₁ ξ.outside), a₂ = (ξ.outsideMap a₁, h))
                                Instances For
                                  theorem ConNF.BaseAction.outsideRel_dom_small [ConNF.Params] (ξ : ConNF.BaseAction) :
                                  ConNF.Small ξ.outsideRel.dom
                                  theorem ConNF.BaseAction.outsideRel_injective [ConNF.Params] (ξ : ConNF.BaseAction) :
                                  ξ.outsideRel.Injective
                                  theorem ConNF.BaseAction.outsideRel_coinjective [ConNF.Params] (ξ : ConNF.BaseAction) :
                                  ξ.outsideRel.Coinjective
                                  theorem ConNF.BaseAction.outsideRel_oneOne [ConNF.Params] (ξ : ConNF.BaseAction) :
                                  ξ.outsideRel.OneOne
                                  theorem ConNF.BaseAction.outsideRel_dom [ConNF.Params] (ξ : ConNF.BaseAction) :
                                  Disjoint ξ.dom ξ.outsideRel.dom
                                  theorem ConNF.BaseAction.outsideRel_codom [ConNF.Params] (ξ : ConNF.BaseAction) :
                                  Disjoint ξ.codom ξ.outsideRel.codom
                                  theorem ConNF.BaseAction.outsideRel_mem_iff_mem [ConNF.Params] {ξ : ConNF.BaseAction} (hξ : Nξ.dom, N \ N ξ.dom) {a₁ a₂ : ConNF.Atom} {N₁ N₂ : ConNF.NearLitter} (ha : ξ.outsideRel a₁ a₂) (hN : ξ N₁ N₂) :
                                  a₁ N₁ a₂ N₂
                                  def ConNF.BaseAction.outsideExtension [ConNF.Params] (ξ : ConNF.BaseAction) (hξ : Nξ.dom, N \ N ξ.dom) :
                                  ConNF.BaseAction
                                  Equations
                                  • ξ.outsideExtension = ξ.extend ξ.outsideRel
                                  Instances For
                                    theorem ConNF.BaseAction.outsideExtension_atoms [ConNF.Params] (ξ : ConNF.BaseAction) (hξ : Nξ.dom, N \ N ξ.dom) :
                                    (ξ.outsideExtension ) = ξ ξ.outsideRel
                                    theorem ConNF.BaseAction.le_outsideExtension [ConNF.Params] (ξ : ConNF.BaseAction) (hξ : Nξ.dom, N \ N ξ.dom) :
                                    ξ ξ.outsideExtension
                                    theorem ConNF.BaseAction.outsideExtension_spec [ConNF.Params] {ξ : ConNF.BaseAction} {hξ : Nξ.dom, N \ N ξ.dom} (N : ConNF.NearLitter) (hN : N ξ.dom) :
                                    N \ N (ξ.outsideExtension ).dom

                                    Nice extensions #

                                    def ConNF.BaseAction.doubleInsideExtension [ConNF.Params] (ξ : ConNF.BaseAction) :
                                    ConNF.BaseAction
                                    Equations
                                    • ξ.doubleInsideExtension = ξ.insideExtension⁻¹.insideExtension⁻¹
                                    Instances For
                                      theorem ConNF.BaseAction.le_doubleInsideExtension [ConNF.Params] (ξ : ConNF.BaseAction) :
                                      ξ ξ.doubleInsideExtension
                                      theorem ConNF.BaseAction.doubleInsideExtension_dom [ConNF.Params] {ξ : ConNF.BaseAction} (N : ConNF.NearLitter) (hN : N ξ.dom) :
                                      N \ N ξ.doubleInsideExtension.dom
                                      theorem ConNF.BaseAction.doubleInsideExtension_codom [ConNF.Params] {ξ : ConNF.BaseAction} (N : ConNF.NearLitter) (hN : N ξ.codom) :
                                      N \ N ξ.doubleInsideExtension.codom
                                      theorem ConNF.BaseAction.niceExtension_aux [ConNF.Params] {ξ : ConNF.BaseAction} (N : ConNF.NearLitter) (hN : N ξ.codom) :
                                      N \ N (ξ.doubleInsideExtension.outsideExtension )⁻¹.dom
                                      def ConNF.BaseAction.niceExtension [ConNF.Params] (ξ : ConNF.BaseAction) :
                                      ConNF.BaseAction
                                      Equations
                                      • ξ.niceExtension = ((ξ.doubleInsideExtension.outsideExtension )⁻¹.outsideExtension )⁻¹
                                      Instances For
                                        theorem ConNF.BaseAction.le_niceExtension [ConNF.Params] (ξ : ConNF.BaseAction) :
                                        ξ ξ.niceExtension
                                        theorem ConNF.BaseAction.niceExtension_nice [ConNF.Params] (ξ : ConNF.BaseAction) :
                                        ξ.niceExtension.Nice
                                        @[simp]
                                        theorem ConNF.BaseAction.niceExtension_nearLitters [ConNF.Params] (ξ : ConNF.BaseAction) :
                                        ξ.niceExtension = ξ
                                        @[simp]
                                        theorem ConNF.BaseAction.niceExtension_litters [ConNF.Params] (ξ : ConNF.BaseAction) :
                                        ξ.niceExtension = ξ