interface DecEq : Type -> Type Decision procedures for propositional equality
Parameters: t
Methods:
decEq : (x1 : t) -> (x2 : t) -> Dec (x1 = x2) Decide whether two elements of `t` are propositionally equal
Implementations:
DecEq (Elem x xs) DecEq (Elem x sx) DecEq (Elem x xs) DecEq (Elem x xs) DecEq () DecEq Bool DecEq Nat DecEq t => DecEq (Maybe t) (DecEq t, DecEq s) => DecEq (Either t s) DecEq t => DecEq s => DecEq (These t s) (DecEq a, DecEq b) => DecEq (a, b) DecEq a => DecEq (List a) DecEq a => DecEq (List1 a) DecEq a => DecEq (SnocList a) DecEq Int DecEq Bits8 DecEq Bits16 DecEq Bits32 DecEq Bits64 DecEq Int8 DecEq Int16 DecEq Int32 DecEq Int64 DecEq Char DecEq Integer DecEq String DecEq a => DecEq (Vect n a) DecEq (Fin n)
decEq : DecEq t => (x1 : t) -> (x2 : t) -> Dec (x1 = x2) Decide whether two elements of `t` are propositionally equal
Totality: total
Visibility: public exportnegEqSym : Not (a = b) -> Not (b = a) The negation of equality is symmetric (follows from symmetry of equality)
Totality: total
Visibility: exportdecEqSelfIsYes : {auto {conArg:2618} : DecEq a} -> decEq x x = Yes Refl Everything is decidably equal to itself
Totality: total
Visibility: exportdecEqContraIsNo : {auto {conArg:2682} : DecEq a} -> Not (x = y) -> (p : x = y -> Void ** decEq x y = No p) If you have a proof of inequality, you're sure that `decEq` would give a `No`.
Totality: total
Visibility: exportdecEqCong : {auto 0 _ : Injective f} -> Dec (x = y) -> Dec (f x = f y)- Totality: total
Visibility: public export decEqInj : {auto 0 _ : Injective f} -> Dec (f x = f y) -> Dec (x = y)- Totality: total
Visibility: public export decEqCong2 : {auto 0 _ : Biinjective f} -> Dec (x = y) -> Lazy (Dec (v = w)) -> Dec (f x v = f y w)- Totality: total
Visibility: public export