The two actual ports of an edge variable #
Two distinct original incidences naming the same variable exhaust its occurrences. This packages the existing partner API for positional transports that already exhibit both ends.
theorem Cslib.Logic.PL.CSP.EdgeInstance.eq_or_eq_of_two {Rel : Type u_1} {V : Type u_2} {F : CSP Rel V} (h : F.EdgeInstance) {o p q : F.Occurrence} (hp : o.var = p.var) (hq : q.var = p.var) (hne : q ≠ p) :
Two distinct displayed ports exhaust every occurrence of their edge variable.
theorem Cslib.Logic.PL.CSP.EdgeInstance.inconsistent_iff_of_two {Rel : Type u_1} {V : Type u_2} {F : CSP Rel V} (h : F.EdgeInstance) (l : F.OccurrenceLabeling Bool) (p q : F.Occurrence) (hv : q.var = p.var) (hn : q ≠ p) :
A variable's defect is the disagreement of any displayed pair of its distinct ports.
theorem Cslib.Logic.PL.CSP.inconsistent_congr {Rel : Type u_1} {V : Type u_2} {F : CSP Rel V} {f g : F.OccurrenceLabeling Bool} {v : V} (h : ∀ (o : F.Occurrence), o.var = v → f o = g o) :
Agreement at all actual ports of one variable preserves its exact defect status.
theorem Cslib.Logic.PL.CSP.defects_inter_eq_of_eqOn {Rel : Type u_1} {V : Type u_2} {F : CSP Rel V} [DecidableEq V] {f g : F.OccurrenceLabeling Bool} (vs : Finset V) (h : ∀ (o : F.Occurrence), o.var ∈ vs → f o = g o) :
Agreement on a finite variable set preserves exactly the defects in that set.