OAI/AlgebraicGeometry/CharacterVarieties/Foundation/PortPatches.lean
49 declarations, 0 contain sorry, 0 declared as axioms
- structure
OAI.IntegralCharacterVarieties.OccurrenceIncidence.PortPatchline 13Source documentation
A finite open template is given by explicit enumerations of all vertex ports. Internal wires match equal indices; the remaining ports are the interface.
structure PortPatch (kind : V → VertexTable.Kind) (I A B : Type) where …
Mentions: OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.Kind
- def
OAI.IntegralCharacterVarieties.OccurrenceIncidence.PortPatch.completeline 23Source documentation
Closing the interface uses only an whole-port matching, never a matching of independent child germs.
def complete (e : A ≃ B) (h : ∀ a, (kind (P.minus (.inr (e a))).val.1).arity (P.minus (.inr (e a))).val.2 = (kind (P.plus (.inr a)).val.1).arity (P.plus (.inr a)).val.2) : PortWiring kind where …Mentions: OAI.IntegralCharacterVarieties.OccurrenceIncidence.PortWiring
- lemma
OAI.IntegralCharacterVarieties.OccurrenceIncidence.PortPatch.complete_internalline 36 - lemma
OAI.IntegralCharacterVarieties.OccurrenceIncidence.PortPatch.complete_externalline 42 - theorem
OAI.IntegralCharacterVarieties.OccurrenceIncidence.PortPatch.port_exhaustiveline 49Source documentation
Every port is accounted for exactly once already in the template.
theorem port_exhaustive (p : PortAt kind true) : (∃ i, P.plus (.inl i)=p) ∨ (∃ a, P.plus (.inr a)=p) := by …Mentions: OAI.IntegralCharacterVarieties.OccurrenceIncidence.PortAt
- def
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.Decoration.portColorline 63Source documentation
Ordered list form of a local decoration; none is still the parent.
def Decoration.portColor (d : Decoration k F) (p : k.table.Port) (j : Option (Fin (k.arity p))) : F := d.color ⟨p,j.map (k.childEnumeration p).symm⟩Mentions: OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.Decoration
- lemma
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.Decoration.portColor_childline 66 - def
OAI.IntegralCharacterVarieties.OccurrenceIncidence.includeComplementline 76Source documentation
An embedding, together with all unconsumed objects, is an exact disjoint partition. This is used on whole ports, never on independent child germs.
noncomputable def includeComplement {I P : Type} (f : I ↪ P) : I ⊕ {p : P // p∉Set.range f} ≃ P := … - lemma
OAI.IntegralCharacterVarieties.OccurrenceIncidence.includeComplement_inlline 81 - lemma
OAI.IntegralCharacterVarieties.OccurrenceIncidence.includeComplement_inrline 83 - def
OAI.IntegralCharacterVarieties.OccurrenceIncidence.PortPatch.ofPartialline 89Source documentation
A partial sewing, with every unused port left exposed exactly once. Injectivity prevents accidental multiple use of a repeated occurrence.
noncomputable def ofPartial (plus : I ↪ PortAt k true) (minus : I ↪ PortAt k false) (h : ∀ i, (k (minus i).val.1).arity (minus i).val.2= (k (plus i).val.1).arity (plus i).val.2) : PortPatch k I {p : PortAt k true // p∉Set.range plus} {p : PortAt k false // p∉Set.range minus} where …Mentions: OAI.IntegralCharacterVarieties.OccurrenceIncidence.PortAt, OAI.IntegralCharacterVarieties.OccurrenceIncidence.PortPatch
- def
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.Kind.inputline 101Source documentation
The incoming/outgoing main ports at one allowed event. Every remaining port (the split branch) is still present in the original table.
def Kind.input : (k : Kind) → k.table.Port | .passage _ _ => false | .splitting _ _ _ false => .before | .splitting _ _ _ true => .after
Mentions: OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.Kind, OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.passage
- def
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.Kind.outputline 106 - lemma
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.Kind.input_endpointline 111 - lemma
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.Kind.output_endpointline 115 - lemma
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.Kind.principal_cornerline 120 - def
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VariableGallery.inputline 130 - def
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VariableGallery.outputline 132 - def
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VariableGallery.internalPlusline 135 - def
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VariableGallery.internalMinusline 138 - def
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VariableGallery.patchline 145Source documentation
Variable-length path of split/merge/adjacent events. All side branches are part of its explicit interface, not discarded by the path.
noncomputable def patch := PortPatch.ofPartial (internalPlus kind) (internalMinus kind) ha
Mentions: OAI.IntegralCharacterVarieties.OccurrenceIncidence.PortPatch.ofPartial, OAI.IntegralCharacterVarieties.OccurrenceIncidence.VariableGallery.internalPlus, OAI.IntegralCharacterVarieties.OccurrenceIncidence.VariableGallery.internalMinus
- lemma
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VariableGallery.first_exposedline 147 - lemma
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VariableGallery.last_exposedline 152 - lemma
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VariableGallery.parent_cornerline 159Source documentation
Parent corners concatenate with the original orientation.
lemma parent_corner (v : Fin (l+1)) : localMate (⟨v,(kind v).input,none⟩ : LocalEnd _ kind)=⟨v,(kind v).output,none⟩ := by …Mentions: OAI.IntegralCharacterVarieties.OccurrenceIncidence.localMate, OAI.IntegralCharacterVarieties.OccurrenceIncidence.VariableGallery.input, OAI.IntegralCharacterVarieties.OccurrenceIncidence.LocalEnd, OAI.IntegralCharacterVarieties.OccurrenceIncidence.VariableGallery.output
- def
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VariableGallery.ColorChainline 164Source documentation
Lists must match in their order, including repetitions.
def ColorChain {F : Type} (d : (v : Fin (l+1)) → Decoration (kind v) F) : Prop := … - def
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.Decoration.childrenline 176 - lemma
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.Decoration.children_lengthline 179 - lemma
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.splitting_after_color_falseline 182 - lemma
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.splitting_before_color_falseline 197 - lemma
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.splitting_after_children_falseline 212 - lemma
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.splitting_before_children_falseline 221 - lemma
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.splitting_branch_children_falseline 230 - lemma
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.splitting_after_color_trueline 235 - lemma
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.splitting_before_color_trueline 250 - lemma
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.splitting_after_children_trueline 265 - lemma
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.splitting_before_children_trueline 274 - lemma
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.splitting_branch_children_trueline 283 - def
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.splitListsline 289Source documentation
One split/merge slot in the source's ordered flag gallery.
def splitLists (rev : Bool) (main big : F) (left mid right : List F) : Decoration (.splitting left.length mid.length right.length rev) F := …Mentions: OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.Decoration
- lemma
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.splitLists_inputline 293 - lemma
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.splitLists_outputline 299 - structure
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.OrderedStepline 312Source documentation
A step records the permitted vertex and all of its ports; the two lists only designate the main band through that vertex. Branch ports are not removed or identified.
structure OrderedStep (parent : F) (before after : List F) where …
- inductive
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.OrderedChainline 320 - def
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.OrderedChain.singleline 327 - def
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.OrderedChain.transline 328 - def
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.OrderedStep.splitline 334Source documentation
An split vertex, retaining its branch with its fine ordered grades.
def OrderedStep.split (parent big : F) (left mid right : List F) : OrderedStep parent (left++big::right) (left++(mid++right)) where …Mentions: OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.OrderedStep
- def
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.OrderedStep.mergeline 344Source documentation
Reversal retains the same three whole ports, with all their orientations reversed according to the source merge convention.
def OrderedStep.merge (parent big : F) (left mid right : List F) : OrderedStep parent (left++(mid++right)) (left++big::right) where …Mentions: OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.OrderedStep
- def
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.OrderedStep.passageline 353 - theorem
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.refine_rowsline 363Source documentation
The finite row refinement is produced one split at a time. Each named row branch stays in the template interface. No flag-factorization or geometric-bundle premise occurs in this construction.
theorem refine_rows (parent : F) (rows : List (F × List F)) (left right : List F) : Nonempty (OrderedChain parent (left++(rows.map Prod.fst++right)) (left++(rows.flatMap Prod.snd++right))) ∧ Nonempty (OrderedChain parent (left++(rows.flatMap Prod.snd++right)) (left++(rows.map Prod.fst++right))) := by …Mentions: OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.OrderedChain
- theorem
OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.permutation_chainline 382Source documentation
Every finite permutation of the common fine grades is produced entirely by the source's adjacent interchanges. Zero grades and repeated facet names are allowed; no distinctness condition is imposed on f.
theorem permutation_chain (parent : F) {m : ℕ} (σ : Equiv.Perm (Fin m)) : ∀ f : Fin m → F, Nonempty (OrderedChain parent (List.ofFn f) (List.ofFn (f ∘ σ.symm))) := by …Mentions: OAI.IntegralCharacterVarieties.OccurrenceIncidence.VertexTable.OrderedChain