diff --git a/hax-lib/src/prop.rs b/hax-lib/src/prop.rs index 8bb89574c..8d3ee3d93 100644 --- a/hax-lib/src/prop.rs +++ b/hax-lib/src/prop.rs @@ -21,18 +21,24 @@ pub mod constructors { pub fn not(lhs: Prop) -> Prop { Prop(!lhs.0) } - pub fn eq(lhs: Prop, other: Prop) -> Prop { - Prop(lhs.0 == other.0) + + /// Logical equality between two value of *any* type + pub fn eq(_lhs: T, _rhs: T) -> Prop { + Prop(true) } - pub fn ne(lhs: Prop, other: Prop) -> Prop { - Prop(lhs.0 != other.0) + + pub fn ne(_lhs: T, _rhs: T) -> Prop { + Prop(true) } + pub fn implies(lhs: Prop, other: Prop) -> Prop { Prop(lhs.0 || !other.0) } + pub fn forall Prop>(_pred: F) -> Prop { Prop(true) } + pub fn exists Prop>(_pred: F) -> Prop { Prop(true) } @@ -136,3 +142,5 @@ pub fn exists>(f: impl Fn(T) -> U) -> Prop { pub fn implies(lhs: impl Into, rhs: impl Into) -> Prop { constructors::implies(lhs.into(), rhs.into()) } + +pub use constructors::eq;