Equations
- One or more equations did not get rendered due to their size.
- ISAR.instDecidableEqTTerm.decEq ISAR.TTerm.I ISAR.TTerm.I = isTrue ⋯
- ISAR.instDecidableEqTTerm.decEq ISAR.TTerm.I ISAR.TTerm.K = isFalse ISAR.instDecidableEqTTerm.decEq._proof_1
- ISAR.instDecidableEqTTerm.decEq ISAR.TTerm.I ISAR.TTerm.S = isFalse ISAR.instDecidableEqTTerm.decEq._proof_2
- ISAR.instDecidableEqTTerm.decEq ISAR.TTerm.I (a.app a_1) = isFalse ⋯
- ISAR.instDecidableEqTTerm.decEq ISAR.TTerm.K ISAR.TTerm.I = isFalse ISAR.instDecidableEqTTerm.decEq._proof_4
- ISAR.instDecidableEqTTerm.decEq ISAR.TTerm.K ISAR.TTerm.K = isTrue ⋯
- ISAR.instDecidableEqTTerm.decEq ISAR.TTerm.K ISAR.TTerm.S = isFalse ISAR.instDecidableEqTTerm.decEq._proof_5
- ISAR.instDecidableEqTTerm.decEq ISAR.TTerm.K (a.app a_1) = isFalse ⋯
- ISAR.instDecidableEqTTerm.decEq ISAR.TTerm.S ISAR.TTerm.I = isFalse ISAR.instDecidableEqTTerm.decEq._proof_7
- ISAR.instDecidableEqTTerm.decEq ISAR.TTerm.S ISAR.TTerm.K = isFalse ISAR.instDecidableEqTTerm.decEq._proof_8
- ISAR.instDecidableEqTTerm.decEq ISAR.TTerm.S ISAR.TTerm.S = isTrue ⋯
- ISAR.instDecidableEqTTerm.decEq ISAR.TTerm.S (a.app a_1) = isFalse ⋯
- ISAR.instDecidableEqTTerm.decEq (a.app a_1) ISAR.TTerm.I = isFalse ⋯
- ISAR.instDecidableEqTTerm.decEq (a.app a_1) ISAR.TTerm.K = isFalse ⋯
- ISAR.instDecidableEqTTerm.decEq (a.app a_1) ISAR.TTerm.S = isFalse ⋯
Instances For
@[implicit_reducible]
@[implicit_reducible]
Equations
- ISAR.instReprTTerm = { reprPrec := ISAR.instReprTTerm.repr }
Equations
- One or more equations did not get rendered due to their size.
- ISAR.instReprTTerm.repr ISAR.TTerm.I prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "ISAR.TTerm.I")).group prec✝
- ISAR.instReprTTerm.repr ISAR.TTerm.K prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "ISAR.TTerm.K")).group prec✝
- ISAR.instReprTTerm.repr ISAR.TTerm.S prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "ISAR.TTerm.S")).group prec✝
Instances For
Constructive decoder over the ITerm structure.
Equations
Instances For
Proof that decode_raw after trs_encode is the identity on TTerm.
Proof that trs_encode after decode_raw is the identity on ISKSubtype.
The observational equivalence relation on TTerm, reducing to operational equivalence of encodings.
Equations
- ISAR.trs_obs_eq t1 t2 = ISAR.OperEq (ISAR.trs_encode t1) (ISAR.trs_encode t2)
Instances For
Proof that trs_obs_eq is an equivalence relation.
Setoid of TRS observations (OperEq of encodings).
Equations
- ISAR.trsObsSetoid = { r := ISAR.trs_obs_eq, iseqv := ISAR.trs_obs_equiv }
Instances For
@[reducible, inline]
Observation space: TTerm modulo observational equivalence.
Equations
Instances For
Decode an OperEq-class to a TRS observation.
Well-defined because trs_encode ∘ decode_raw = id on ISKSubtype, so OperEq
of substrate terms induces trs_obs_eq of decodings — no canonical_rep / choice.
Equations
- ISAR.trs_decode q = Quotient.lift (fun (t : ISAR.ISKSubtype) => ⟦ISAR.decode_raw t⟧) ISAR.trs_decode._proof_1 q
Instances For
The concrete TRS_Dialect : Dialect instance (computable; OperEq observations).
Equations
- One or more equations did not get rendered due to their size.