Theorem: SSAEnv.get_set_eq_val (MLIR/Semantics/SSAEnv.lean)

State before:
α σ : Type
ε : σ → Type
δ : Dialect α σ ε
τ τ' : MLIRType δ
env : SSAEnv δ
v : SSAVal
val : MLIRType.eval τ'
H' : τ' = τ
⊢ MLIRType.eval τ' = MLIRType.eval τ
Tactic:
simp [H']
State after:
no goals

State before:
α σ : Type
ε : σ → Type
δ : Dialect α σ ε
τ τ' : MLIRType δ
env : SSAEnv δ
v : SSAVal
val : MLIRType.eval τ'
⊢ get v τ (set v τ' val env) =
    if H' : τ' = τ then
      some
        (cast
          (_ :
            (match τ' with
              | MLIRType.float a => Float
              | MLIRType.int signedness sz => FinInt sz
              | MLIRType.tensor1d => Tensor1D
              | MLIRType.tensor2d => Tensor2D
              | MLIRType.tensor4d => Tensor4D
              | MLIRType.index => ℤ
              | MLIRType.undefined a => Unit
              | MLIRType.extended σ => ε σ
              | MLIRType.erased => Unit) =
              match τ with
              | MLIRType.float a => Float
              | MLIRType.int signedness sz => FinInt sz
              | MLIRType.tensor1d => Tensor1D
              | MLIRType.tensor2d => Tensor2D
              | MLIRType.tensor4d => Tensor4D
              | MLIRType.index => ℤ
              | MLIRType.undefined a => Unit
              | MLIRType.extended σ => ε σ
              | MLIRType.erased => Unit)
          val)
    else none
Tactic:
simp [get, getT_set_eq]
State after:
no goals