MData
tag for expressions that are proofs.
Equations
- Aesop.mdataPINFIsProofName = `Aesop.pinfIsProof
Instances For
Modify d
to indicate that the enclosed expression is a proof.
Equations
Instances For
Check whether d
indicates that the enclosed expression is a proof.
Equations
Instances For
Check whether two expressions in PINF are equal. We assume that the two expressions are type-correct, in PINF and have defeq types.
Instances For
Check whether two expressions in PINF are equal. We assume that the two expressions are type-correct, in PINF and have defeq types.
Equations
- Aesop.pinfEq x y = (Aesop.pinfEq.unsafe_impl_1 x y || Aesop.pinfEqCore x y)
Instances For
Compute the PINF hash of an expression in PINF. The hash ignores binder
names, binder info and proofs marked by mdataPINFIsProofName
.
Compute the PINF hash of an expression in PINF. The hash ignores binder
names, binder info and proofs marked by mdataPINFIsProofName
.
Equations
- Aesop.pinfHash e = runST fun (x : Type) => (Aesop.pinfHashCore e).run' ∅
Instances For
Equations
- Aesop.instInhabitedPINFRaw = { default := { toExpr := default } }
Equations
- Aesop.instBEqPINFRaw = { beq := fun (x y : Aesop.PINFRaw md) => Aesop.pinfEq x.toExpr y.toExpr }
Equations
- Aesop.instHashablePINFRaw = { hash := fun (x : Aesop.PINFRaw md) => Aesop.pinfHash x.toExpr }
Equations
- Aesop.instToStringPINFRaw = { toString := fun (x : Aesop.PINFRaw md) => toString x.toExpr }
Equations
- Aesop.instToFormatPINFRaw = { format := fun (x : Aesop.PINFRaw md) => Std.format x.toExpr }
Equations
- Aesop.instToMessageDataPINFRaw = { toMessageData := fun (x : Aesop.PINFRaw md) => Lean.toMessageData x.toExpr }
An expression in PINF at reducible
transparency.
Instances For
Equations
- Aesop.instInhabitedRPINFCache = { default := { map := default } }
Equations
- Aesop.instEmptyCollectionRPINFCache = { emptyCollection := { map := ∅ } }
An expression in PINF at transparency md
, together with its PINF hash as
computed by pinfHash
.
Instances For
Equations
- Aesop.instInhabitedPINF = { default := { toExpr := default, hash := default } }
Equations
- Aesop.instBEqPINF = { beq := fun (x y : Aesop.PINF md) => Aesop.pinfEq x.toExpr y.toExpr }
Equations
- Aesop.instHashablePINF = { hash := fun (x : Aesop.PINF md) => x.hash }
Equations
- Aesop.instOrdPINF = { compare := fun (x y : Aesop.PINF md) => if (x == y) = true then Ordering.eq else if x.toExpr.lt y.toExpr = true then Ordering.lt else Ordering.gt }
Equations
- Aesop.instToStringPINF = { toString := fun (x : Aesop.PINF md) => toString x.toExpr }
Equations
- Aesop.instToFormatPINF = { format := fun (x : Aesop.PINF md) => Std.format x.toExpr }
Equations
- Aesop.instToMessageDataPINF = { toMessageData := fun (x : Aesop.PINF md) => Lean.toMessageData x.toExpr }
An expression in RPINF together with its RPINF hash.