Declarations
A correspondence diagram : a string for each role and, for each ordered pair of roles, a
directed relation between their positions.
form : Role → List α
edge
(r₁ r₂ : Role ) :
Finset (Fin (self .form r₁ ) .length × Fin (self .form r₂ ) .length ) Used by Correspondence.IsSymmetric , Correspondence.maxViol , Correspondence.depViol , Correspondence.maxViolOn , Correspondence.depViolOn , Correspondence.maxViolAt , Correspondence.depViolAt , Correspondence.identViol , Correspondence.identViolFeature , Correspondence.maxViolFeature , Correspondence.depViolFeature , Correspondence.maxViolFeature_pos_iff , Correspondence.contigIViol , Correspondence.contigOViol , Correspondence.anchorLViol , Correspondence.anchorRViol , Correspondence.linearityViol , Correspondence.uniformityViol , Correspondence.integrityViol , Correspondence.maxViol_eq_zero_iff , Correspondence.depViol_eq_zero_iff , Correspondence.maxViolOn_true , Correspondence.depViolOn_true , Correspondence.maxViolAt_true , Correspondence.depViolAt_true , Correspondence.integrityViol_eq_zero_iff , Correspondence.uniformityViol_eq_zero_iff , Correspondence.linearityViol_eq_zero_iff , Correspondence.ofPairs , Correspondence.diagram , Correspondence.parallel , Correspondence.identity , Correspondence.reduplication , Correspondence.ofFun , Correspondence.swap , Correspondence.IsSymmetric.swap , Correspondence.depViolAt_swap , Correspondence.maxViol_swap , Correspondence.identViol_swap , Correspondence.maxViol_of_diagonal , Correspondence.depViol_of_diagonal , Correspondence.maxViol_eq_zero_of_diagonal , Correspondence.depViol_eq_zero_of_diagonal , Correspondence.identViolFeature_eq_zero_of_diagonal , Correspondence.identViol_eq_zero_of_diagonal , Correspondence.maxViolFeature_of_diagonal , Correspondence.depViolFeature_of_diagonal , Correspondence.identViolFeature_of_diagonal , Correspondence.IsSymmetric.maxViolAt_eq , Correspondence.IsSymmetric.maxViol_eq , Correspondence.IsSymmetric.identViol_eq , Correspondence.maxViol_eq_zero_of_graph , Correspondence.depViolAt_of_graph , Correspondence.integrityViol_eq_zero_of_graph , Correspondence.uniformityViol_eq_zero_of_graph , Correspondence.linearityViol_eq_zero_of_graph , Correspondence.identViol_eq_zero_iff_of_graph , Correspondence.IsFaithful , Correspondence.exists_fun_mem_edge_iff , Correspondence.exists_orderEmbedding_mem_edge_iff , Correspondence.isFaithful_iff_exists_orderIso , Correspondence.length_eq_of_isFaithful , Correspondence.IsFaithfulness , Correspondence.IsMarkedness , Correspondence.isMarkedness_comap , Correspondence.isMarkedness_iff_exists_comap , Correspondence.isFaithfulness_maxViol , Correspondence.isFaithfulness_depViol , Correspondence.isFaithfulness_identViol , Correspondence.IsFaithfulness.not_antifaithful , Correspondence.exists_isMarkedness_not_isFaithfulness
Used in Phonology/OptimalityTheory/Correspondence/Deletion , Alderete2001 , Benua1997 , BerentEtAl2016 , Casali1997 and 7 more
Derives DecidableEq, Repr.
Used by BinaryRole.swap , Correspondence.parallel , Correspondence.identity , Correspondence.parallel_edge_diag , Correspondence.ofFun , Correspondence.swap , Correspondence.IsSymmetric.swap , Correspondence.depViolAt_swap , Correspondence.maxViol_swap , Correspondence.identViol_swap , Correspondence.IsFaithfulness , Correspondence.isFaithfulness_maxViol , Correspondence.isFaithfulness_depViol , Correspondence.isFaithfulness_identViol , Correspondence.IsFaithfulness.not_antifaithful , Correspondence.exists_isMarkedness_not_isFaithfulness
Used in Phonology/OptimalityTheory/Correspondence/Deletion , Alderete2001 , Casali1997 , Pater2001 , RoseWalker2004 and 3 more
@[simp] theorem BinaryRole.swap_lhs L99
Built from BinaryRole.swap
@[simp] theorem BinaryRole.swap_rhs L101
Built from BinaryRole.swap
The roles of the basic model of reduplication are the input, the base and the
reduplicant.
Derives DecidableEq, Repr.
Used by Correspondence.reduplication , Correspondence.reduplication_edge
Used in BerentEtAl2016 , McCarthyPrince1995
A correspondence is symmetric when each relation is the converse of the reverse one.
Built from Correspondence
Used by Correspondence.diagram_isSymmetric , Correspondence.parallel_isSymmetric , Correspondence.reduplication_isSymmetric , Correspondence.ofFun_isSymmetric , Correspondence.IsSymmetric.swap , Correspondence.IsSymmetric.maxViolAt_eq , Correspondence.IsSymmetric.maxViol_eq , Correspondence.IsSymmetric.identViol_eq
Used in Phonology/OptimalityTheory/Correspondence/Deletion
Constraint families
MAX counts the positions of form r₁ without a correspondent in form r₂.
Built from Correspondence
Used by Correspondence.maxViol_eq_zero_iff , Correspondence.maxViolOn_true , Correspondence.maxViolAt_true , Correspondence.maxViol_swap , Correspondence.maxViol_of_diagonal , Correspondence.maxViol_eq_zero_of_diagonal , Correspondence.maxViol_identity , Correspondence.IsSymmetric.maxViol_eq , Correspondence.maxViol_eq_zero_of_graph , Correspondence.IsFaithful , Correspondence.exists_fun_mem_edge_iff , Correspondence.exists_orderEmbedding_mem_edge_iff , Correspondence.isFaithfulness_maxViol
Used in Phonology/OptimalityTheory/Correspondence/Deletion , Alderete2001 , Casali1997 , Pater2001 , Storme2026
DEP counts the positions of form r₂ without a correspondent in form r₁.
Built from Correspondence
Used by Correspondence.depViol_eq_zero_iff , Correspondence.depViolOn_true , Correspondence.depViolAt_true , Correspondence.depViol_of_diagonal , Correspondence.depViol_eq_zero_of_diagonal , Correspondence.depViol_identity , Correspondence.IsSymmetric.maxViol_eq , Correspondence.IsFaithful , Correspondence.isFaithfulness_depViol
Used in Phonology/OptimalityTheory/Correspondence/Deletion , Storme2026
MAX restricted to the positions of form r₁ whose segment satisfies P, as in MAX-V and
MAX-C.
Built from Correspondence
Used by Correspondence.maxViolOn_true
Used in McCarthy2005
DEP restricted to the positions of form r₂ whose segment satisfies P, as in DEP-V and
DEP-C.
Built from Correspondence
Used by Correspondence.depViolOn_true
Used in McCarthy2005
MAX restricted to the positions of form r₁ that satisfy P, which is the form of a
positional faithfulness constraint.
Built from Correspondence
Used by Correspondence.maxViolAt_true , Correspondence.IsSymmetric.maxViolAt_eq
Used in Phonology/OptimalityTheory/Correspondence/Deletion , Phonology/OptimalityTheory/PositionalFaithfulness , Casali1997 , Vago2017
DEP restricted to the positions of form r₂ that satisfy P.
Built from Correspondence
Used by Correspondence.depViolAt_true , Correspondence.depViolAt_swap , Correspondence.IsSymmetric.maxViolAt_eq , Correspondence.depViolAt_of_graph
Used in Phonology/OptimalityTheory/Correspondence/Deletion
IDENT on whole segments counts the corresponding pairs whose segments differ.
Built from Correspondence
Used by Correspondence.identViol_swap , Correspondence.identViol_eq_zero_of_diagonal , Correspondence.identViol_identity , Correspondence.IsSymmetric.identViol_eq , Correspondence.identViol_eq_zero_iff_of_graph , Correspondence.isFaithfulness_identViol
Used in Phonology/OptimalityTheory/Correspondence/Deletion
IDENT(F) for the feature proj counts the corresponding pairs that differ under proj.
Built from Correspondence
Used by Correspondence.identViolFeature_eq_zero_of_diagonal , Correspondence.identViolFeature_identity , Correspondence.identViolFeature_of_diagonal
Used in Alderete2001 , Benua1997 , McCarthy2005
def Correspondence.maxViolFeature L163–167
MAX of a privative property along a segmental correspondence counts the corresponding
pairs whose first member has P and whose second lacks it, the autosegment being lost.
Built from Correspondence
Used by Correspondence.maxViolFeature_pos_iff , Correspondence.maxViolFeature_of_diagonal
Used in Alderete2001 , RoseWalker2004
def Correspondence.depViolFeature L169–173
DEP of a privative property along a segmental correspondence counts the corresponding pairs
whose second member has P and whose first lacks it, the autosegment being inserted.
Built from Correspondence
Used by Correspondence.depViolFeature_of_diagonal
Used in Alderete2001 , RoseWalker2004
theorem Correspondence.maxViolFeature_pos_iff L175–179
Built from Correspondence , Correspondence.maxViolFeature
I-CONTIG is violated once unless the domain of the relation is a contiguous substring of
form r₁.
c .contigIViol r₁ r₂ = if List.IsChain (fun (a b : ℕ ) => b = a + 1 ) ((Finset.image Fin.val (Finset.image Prod.fst (c .edge r₁ r₂ ) ) ) .sort fun (x1 x2 : ℕ ) => x1 ≤ x2 ) then 0 else 1 Built from Correspondence
O-CONTIG is violated once unless the range of the relation is a contiguous substring of
form r₂.
c .contigOViol r₁ r₂ = if List.IsChain (fun (a b : ℕ ) => b = a + 1 ) ((Finset.image Fin.val (Finset.image Prod.snd (c .edge r₁ r₂ ) ) ) .sort fun (x1 x2 : ℕ ) => x1 ≤ x2 ) then 0 else 1 Built from Correspondence
L-ANCHOR is violated once unless the leftmost positions correspond; it is vacuous when
either string is empty.
c .anchorLViol r₁ r₂ = if h : 0 < (c .form r₁ ) .length ∧ 0 < (c .form r₂ ) .length then if ( ⟨ 0 , ⋯ ⟩ , ⟨ 0 , ⋯ ⟩ ) ∈ c .edge r₁ r₂ then 0 else 1 else 0 Built from Correspondence
R-ANCHOR is violated once unless the rightmost positions correspond; it is vacuous when
either string is empty.
c .anchorRViol r₁ r₂ = if h : 0 < (c .form r₁ ) .length ∧ 0 < (c .form r₂ ) .length then if ( ⟨ (c .form r₁ ) .length - 1 , ⋯ ⟩ , ⟨ (c .form r₂ ) .length - 1 , ⋯ ⟩ ) ∈ c .edge r₁ r₂ then 0 else 1 else 0 Built from Correspondence
LINEARITY counts the pairs of correspondences (i₁, j₁) and (i₂, j₂) with i₁ < i₂ but
j₂ < j₁.
Built from Correspondence
Used by Correspondence.linearityViol_eq_zero_iff , Correspondence.linearityViol_eq_zero_of_graph , Correspondence.IsFaithful , Correspondence.exists_orderEmbedding_mem_edge_iff
UNIFORMITY counts the positions of form r₂ with more than one correspondent in
form r₁.
Built from Correspondence
Used by Correspondence.uniformityViol_eq_zero_iff , Correspondence.uniformityViol_eq_zero_of_graph , Correspondence.IsFaithful , Correspondence.exists_orderEmbedding_mem_edge_iff
Used in Pater2001
INTEGRITY counts the positions of form r₁ with more than one correspondent in
form r₂.
Built from Correspondence
Used by Correspondence.integrityViol_eq_zero_iff , Correspondence.integrityViol_eq_zero_of_graph , Correspondence.IsFaithful , Correspondence.exists_fun_mem_edge_iff , Correspondence.exists_orderEmbedding_mem_edge_iff
Constructors
def Correspondence.diagonalPairs L270–271
The index pairs (0, 0), …, (k - 1, k - 1) of a parallel correspondence.
Used by Correspondence.edgeOfPairs_diagonalPairs
Used in McCarthy2005
The relation on positions given by index pairs; pairs out of range are dropped.
(m n : ℕ ) (l : List (ℕ × ℕ ) ) : Finset (Fin m × Fin n )
Correspondence.edgeOfPairs m n l = (List.filterMap (fun (p : ℕ × ℕ ) => if h : p .1 < m ∧ p .2 < n then some ( ⟨ p .1 , ⋯ ⟩ , ⟨ p .2 , ⋯ ⟩ ) else none ) l ) .toFinset Used by Correspondence.mem_edgeOfPairs , Correspondence.ofPairs_edge , Correspondence.edgeOfPairs_diagonalPairs
@[simp] theorem Correspondence.mem_edgeOfPairs L278–281
{m n : ℕ } {l : List (ℕ × ℕ ) } {p : Fin m × Fin n } :
Built from Correspondence.edgeOfPairs
ofPairs form pairs is the correspondence whose relation edge r₁ r₂ reads the index
pairs pairs r₁ r₂ into the two position types.
{Role : Type u_1} {α : Type u_2} (form : Role → List α ) (pairs : Role → Role → List (ℕ × ℕ ) ) :
The definition is too large to print here; read it in the source .
Built from Correspondence
Used by Correspondence.ofPairs_form , Correspondence.ofPairs_edge
@[simp] theorem Correspondence.ofPairs_form L290–291
{Role : Type u_1} {α : Type u_2} (form : Role → List α ) (pairs : Role → Role → List (ℕ × ℕ ) ) (r : Role ) :
Built from Correspondence.ofPairs
@[simp] theorem Correspondence.ofPairs_edge L293–294
{Role : Type u_1} {α : Type u_2} (r₁ r₂ : Role ) (form : Role → List α ) (pairs : Role → Role → List (ℕ × ℕ ) ) :
Built from Correspondence.edgeOfPairs , Correspondence.ofPairs
The diagonal (0, 0), (1, 1), … of Fin m × Fin n, one pair per index of the
shorter string.
(m n : ℕ ) : Finset (Fin m × Fin n )
Correspondence.diagonal m n = Finset.image (fun (i : Fin (min m n ) ) => ( Fin.castLE ⋯ i , Fin.castLE ⋯ i ) ) Finset.univ Used by Correspondence.mem_diagonal , Correspondence.card_diagonal , Correspondence.image_swap_diagonal , Correspondence.diagram_edge , Correspondence.diagram_edge_pos , Correspondence.parallel_edge_lhs_rhs , Correspondence.parallel_edge_rhs_lhs , Correspondence.reduplication_edge , Correspondence.card_image_fst_diagonal , Correspondence.card_image_snd_diagonal , Correspondence.maxViol_of_diagonal , Correspondence.depViol_of_diagonal , Correspondence.maxViol_eq_zero_of_diagonal , Correspondence.depViol_eq_zero_of_diagonal , Correspondence.identViolFeature_eq_zero_of_diagonal , Correspondence.identViol_eq_zero_of_diagonal , Correspondence.card_filter_diagonal , Correspondence.maxViolFeature_of_diagonal , Correspondence.depViolFeature_of_diagonal , Correspondence.identViolFeature_of_diagonal , Correspondence.edgeOfPairs_diagonalPairs
Used in Alderete2001
@[simp] theorem Correspondence.mem_diagonal L302–307
{m n : ℕ } (a : Fin m ) (b : Fin n ) :
Built from Correspondence.diagonal
theorem Correspondence.card_diagonal L309–311
Built from Correspondence.diagonal
theorem Correspondence.image_swap_diagonal L313–316
Built from Correspondence.diagonal
The diagonal correspondence on every pair of roles satisfying hasEdge, empty
elsewhere.
{Role : Type u_1} {α : Type u_2} (form : Role → List α ) (hasEdge : Role → Role → Prop ) [DecidableRel hasEdge ] :
The definition is too large to print here; read it in the source .
Built from Correspondence
Used by Correspondence.diagram_form , Correspondence.diagram_edge , Correspondence.diagram_edge_pos , Correspondence.diagram_edge_neg , Correspondence.diagram_isSymmetric
@[simp] theorem Correspondence.diagram_form L329
{Role : Type u_1} {α : Type u_2} (form : Role → List α ) (hasEdge : Role → Role → Prop ) [DecidableRel hasEdge ] (r : Role ) :
Built from Correspondence.diagram
theorem Correspondence.diagram_edge L331–332
{Role : Type u_1} {α : Type u_2} (r₁ r₂ : Role ) (form : Role → List α ) (hasEdge : Role → Role → Prop ) [DecidableRel hasEdge ] : (diagram form hasEdge ) .edge r₁ r₂ = if hasEdge r₁ r₂ then diagonal (form r₁ ) .length (form r₂ ) .length else ∅
Built from Correspondence.diagonal , Correspondence.diagram
theorem Correspondence.diagram_edge_pos L334–336
{Role : Type u_1} {α : Type u_2} (form : Role → List α ) (hasEdge : Role → Role → Prop ) [DecidableRel hasEdge ] {r₁ r₂ : Role } (h : hasEdge r₁ r₂ ) :
Built from Correspondence.diagonal , Correspondence.diagram
theorem Correspondence.diagram_edge_neg L338–340
{Role : Type u_1} {α : Type u_2} (form : Role → List α ) (hasEdge : Role → Role → Prop ) [DecidableRel hasEdge ] {r₁ r₂ : Role } (h : ¬ hasEdge r₁ r₂ ) :
Built from Correspondence.diagram
{Role : Type u_1} {α : Type u_2} (form : Role → List α ) (hasEdge : Role → Role → Prop ) [DecidableRel hasEdge ] (hsymm : ∀ {r₁ r₂ : Role }, hasEdge r₁ r₂ → hasEdge r₂ r₁ ) :
Built from Correspondence.IsSymmetric , Correspondence.diagram
The diagonal correspondence between two strings, truncated to the shorter.
{α : Type u_2} (s₁ s₂ : List α ) :
The definition is too large to print here; read it in the source .
Built from Correspondence , BinaryRole
Used by Correspondence.identity , Correspondence.parallel_isSymmetric , Correspondence.parallel_form_lhs , Correspondence.parallel_form_rhs , Correspondence.parallel_edge_diag , Correspondence.parallel_edge_lhs_rhs , Correspondence.parallel_edge_rhs_lhs
Used in Benua1997 , Pater2001 , Stojkovic2026
identity s is the fully faithful candidate, the diagonal correspondence of a string with
itself.
{α : Type u_2} (s : List α ) :
Built from Correspondence , BinaryRole , Correspondence.parallel
Used by Correspondence.maxViol_identity , Correspondence.depViol_identity , Correspondence.identViol_identity , Correspondence.identViolFeature_identity , Correspondence.IsFaithfulness
Used in Pater2001 , Storme2026
The input–base–reduplicant diagram with diagonal correspondence between each pair of
distinct roles.
{α : Type u_2} (input base reduplicant : List α ) :
The definition is too large to print here; read it in the source .
Built from Correspondence , ReduplicationRole
Used by Correspondence.reduplication_isSymmetric , Correspondence.reduplication_form_input , Correspondence.reduplication_form_base , Correspondence.reduplication_form_reduplicant , Correspondence.reduplication_edge
Used in BerentEtAl2016 , McCarthyPrince1995
theorem Correspondence.parallel_isSymmetric L365–366
{α : Type u_2} (s₁ s₂ : List α ) :
Built from Correspondence.IsSymmetric , Correspondence.parallel
theorem Correspondence.reduplication_isSymmetric L368–370
{α : Type u_2} (input base reduplicant : List α ) :
Built from Correspondence.IsSymmetric , Correspondence.reduplication
@[simp] theorem Correspondence.parallel_form_lhs L372
{α : Type u_2} (s₁ s₂ : List α ) :
Built from Correspondence.parallel
@[simp] theorem Correspondence.parallel_form_rhs L374
{α : Type u_2} (s₁ s₂ : List α ) :
Built from Correspondence.parallel
@[simp] theorem Correspondence.parallel_edge_diag L376–378
Built from BinaryRole , Correspondence.parallel
@[simp] theorem Correspondence.parallel_edge_lhs_rhs L380–382
{α : Type u_2} (s₁ s₂ : List α ) :
Built from Correspondence.diagonal , Correspondence.parallel
@[simp] theorem Correspondence.parallel_edge_rhs_lhs L384–387
{α : Type u_2} (s₁ s₂ : List α ) :
Built from Correspondence.diagonal , Correspondence.parallel
@[simp] theorem Correspondence.reduplication_form_input L389–390
{α : Type u_2} (input base reduplicant : List α ) :
Built from Correspondence.reduplication
@[simp] theorem Correspondence.reduplication_form_base L392–393
{α : Type u_2} (input base reduplicant : List α ) :
Built from Correspondence.reduplication
@[simp] theorem Correspondence.reduplication_form_reduplicant L395–396
{α : Type u_2} (input base reduplicant : List α ) :
Built from Correspondence.reduplication
theorem Correspondence.reduplication_edge L398–403
Built from ReduplicationRole , Correspondence.diagonal , Correspondence.reduplication
ofFun s t f is the binary correspondence in which each position i of s has the single
correspondent f i in t.
{α : Type u_2} (s t : List α ) (f : Fin s .length → Fin t .length ) :
The definition is too large to print here; read it in the source .
Built from Correspondence , BinaryRole
Used by Correspondence.ofFun_form_lhs , Correspondence.ofFun_form_rhs , Correspondence.mem_ofFun_edge , Correspondence.ofFun_isSymmetric
Used in Phonology/OptimalityTheory/Correspondence/Deletion
@[simp] theorem Correspondence.ofFun_form_lhs L420
{α : Type u_2} (s t : List α ) (f : Fin s .length → Fin t .length ) :
Built from Correspondence.ofFun
@[simp] theorem Correspondence.ofFun_form_rhs L422
{α : Type u_2} (s t : List α ) (f : Fin s .length → Fin t .length ) :
Built from Correspondence.ofFun
@[simp] theorem Correspondence.mem_ofFun_edge L425–427
{α : Type u_2} {s t : List α } {f : Fin s .length → Fin t .length } {i : Fin s .length } {j : Fin t .length } :
Built from Correspondence.ofFun
theorem Correspondence.ofFun_isSymmetric L429–430
{α : Type u_2} (s t : List α ) (f : Fin s .length → Fin t .length ) :
Built from Correspondence.IsSymmetric , Correspondence.ofFun
theorem Correspondence.IsSymmetric.swap L439–441
Built from Correspondence , BinaryRole , Correspondence.IsSymmetric , Correspondence.swap
theorem Correspondence.depViolAt_swap L443–444
Built from Correspondence , BinaryRole , BinaryRole.swap , Correspondence.depViolAt , Correspondence.swap
theorem Correspondence.maxViol_swap L446–447
Built from Correspondence , BinaryRole , BinaryRole.swap , Correspondence.maxViol , Correspondence.swap
theorem Correspondence.identViol_swap L449–450
Built from Correspondence , BinaryRole , BinaryRole.swap , Correspondence.identViol , Correspondence.swap
Faithfulness and markedness constraints A constraint over correspondences is faithfulness when the fully faithful candidate satisfies
it, and markedness when it reads only the output string. The constraint counting the segments
of the output is markedness and not faithfulness (exists_isMarkedness_not_isFaithfulness ).
A constraint over binary correspondences is faithfulness when the fully faithful candidate
identity s satisfies it.
Built from Correspondence , BinaryRole , Correspondence.identity
Used by Correspondence.isFaithfulness_maxViol , Correspondence.isFaithfulness_depViol , Correspondence.isFaithfulness_identViol , Correspondence.IsFaithfulness.not_antifaithful , Correspondence.exists_isMarkedness_not_isFaithfulness
Used in Alderete2001 , RoseWalker2004
A constraint is markedness for the role out when it depends only on form out.
Built from Correspondence
Used by Correspondence.isMarkedness_comap , Correspondence.isMarkedness_iff_exists_comap , Correspondence.exists_isMarkedness_not_isFaithfulness
Used in Alderete2001 , RoseWalker2004
theorem Correspondence.isMarkedness_comap L739–741
Built from Correspondence , Correspondence.IsMarkedness
A constraint is markedness for the role out exactly when it is a constraint on strings
pulled back along form out.
Built from Correspondence , Correspondence.IsMarkedness
theorem Correspondence.isFaithfulness_maxViol L749–750
Built from Correspondence , BinaryRole , Correspondence.maxViol , Correspondence.IsFaithfulness
theorem Correspondence.isFaithfulness_depViol L752–753
Built from Correspondence , BinaryRole , Correspondence.depViol , Correspondence.IsFaithfulness
theorem Correspondence.isFaithfulness_identViol L755–757
{α : Type u_2} [DecidableEq α ] :
Built from Correspondence , BinaryRole , Correspondence.identViol , Correspondence.IsFaithfulness
The anti-faithfulness constraint of a faithfulness constraint is not faithfulness, since the
fully faithful candidate violates it.
Built from Correspondence , BinaryRole , Correspondence.IsFaithfulness
theorem Correspondence.exists_isMarkedness_not_isFaithfulness L765–768
{α : Type u_2} [Inhabited α ] :
Built from Correspondence , BinaryRole , Correspondence.IsFaithfulness , Correspondence.IsMarkedness