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.