Strong supports #
In this file, we define strong supports.
Main declarations #
ConNF.Support.Strong
: The property that a support is strong.
- interference_subset {N₁ N₂ : NearLitter} : N₁ ∈ Sᴺ → N₂ ∈ Sᴺ → ∀ a ∈ interference N₁ N₂, a ∈ Sᴬ
Instances For
structure
ConNF.Support.PreStrong
[Params]
{β : TypeIndex}
[Level]
[CoherentData]
[LeLevel β]
(S : Support β)
:
Instances For
structure
ConNF.Support.Strong
[Params]
{β : TypeIndex}
[Level]
[CoherentData]
[LeLevel β]
(S : Support β)
extends S.PreStrong, S.Closed :
Instances For
def
ConNF.Support.Constrains
[Params]
{β : TypeIndex}
[Level]
[CoherentData]
[LeLevel β]
:
Rel (β ↝ ⊥ × NearLitter) (β ↝ ⊥ × NearLitter)
Equations
Instances For
theorem
ConNF.Support.constrains_subrelation
[Params]
{β : TypeIndex}
[Level]
[CoherentData]
[LeLevel β]
:
Subrelation Constrains (InvImage (fun (x1 x2 : NearLitter) => pos x1 < pos x2) Prod.snd)
theorem
ConNF.Support.not_constrains_of_flexible
[Params]
{β : TypeIndex}
[Level]
[CoherentData]
[LeLevel β]
{x : β ↝ ⊥ × NearLitter}
{A : β ↝ ⊥}
{N : NearLitter}
(h : ¬Inflexible A Nᴸ)
:
¬Constrains x (A, N)
theorem
ConNF.Support.constrains_small
[Params]
{β : TypeIndex}
[Level]
[CoherentData]
[LeLevel β]
(y : β ↝ ⊥ × NearLitter)
:
Small {x : β ↝ ⊥ × NearLitter | Constrains x y}
theorem
ConNF.Support.reflTransGen_constrains_small
[Params]
{β : TypeIndex}
[Level]
[CoherentData]
[LeLevel β]
(s : Set (β ↝ ⊥ × NearLitter))
(hs : Small s)
:
Small {x : β ↝ ⊥ × NearLitter | ∃ y ∈ s, Relation.ReflTransGen Constrains x y}
def
ConNF.Support.constrainsNearLitters
[Params]
{β : TypeIndex}
[Level]
[CoherentData]
[LeLevel β]
(S : Support β)
:
Support β
A support that contains all of the near-litters that transitively constrain something in S
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
ConNF.Support.mem_constrainsNearLitters_nearLitters
[Params]
{β : TypeIndex}
[Level]
[CoherentData]
[LeLevel β]
(S : Support β)
(A : β ↝ ⊥)
(N : NearLitter)
:
theorem
ConNF.Support.constrainsNearLitters_atoms
[Params]
{β : TypeIndex}
[Level]
[CoherentData]
[LeLevel β]
(S : Support β)
(A : β ↝ ⊥)
:
def
ConNF.Support.constrainsAtoms
[Params]
{β : TypeIndex}
[Level]
[CoherentData]
[LeLevel β]
(S : Support β)
:
Support β
A support that contains all the atoms that constrain something in S
.
Equations
- S.constrainsAtoms = { atoms := ConNF.Enumeration.ofSet {a : β ↝ ⊥ × ConNF.Atom | S.ConstrainsAtom a} ⋯, nearLitters := ConNF.Enumeration.empty }
Instances For
theorem
ConNF.Support.mem_constrainsAtoms_atoms
[Params]
{β : TypeIndex}
[Level]
[CoherentData]
[LeLevel β]
(S : Support β)
(A : β ↝ ⊥)
(a : Atom)
:
theorem
ConNF.Support.constrainsAtoms_nearLitters
[Params]
{β : TypeIndex}
[Level]
[CoherentData]
[LeLevel β]
(S : Support β)
(A : β ↝ ⊥)
:
def
ConNF.Support.preStrong
[Params]
{β : TypeIndex}
[Level]
[CoherentData]
[LeLevel β]
(S : Support β)
:
Support β
Equations
- S.preStrong = S + S.constrainsNearLitters + (S + S.constrainsNearLitters).constrainsAtoms
Instances For
theorem
ConNF.Support.subsupport_preStrong
[Params]
{β : TypeIndex}
[Level]
[CoherentData]
[LeLevel β]
(S : Support β)
:
S.Subsupport S.preStrong
theorem
ConNF.Support.preStrong_preStrong
[Params]
{β : TypeIndex}
[Level]
[CoherentData]
[LeLevel β]
(S : Support β)
:
Equations
- S.close = S + S.interferenceSupport
Instances For
theorem
ConNF.Support.subsupport_close
[Params]
{β : TypeIndex}
(S : Support β)
:
S.Subsupport S.close
theorem
ConNF.Support.preStrong_subsupport_strong
[Params]
{β : TypeIndex}
[Level]
[CoherentData]
[LeLevel β]
(S : Support β)
:
theorem
ConNF.Support.subsupport_strong
[Params]
{β : TypeIndex}
[Level]
[CoherentData]
[LeLevel β]
(S : Support β)
:
S.Subsupport S.strong
theorem
ConNF.Support.strong_strong
[Params]
{β : TypeIndex}
[Level]
[CoherentData]
[LeLevel β]
(S : Support β)
: