Skip to content

Commit

Permalink
Inverse rewrite rules
Browse files Browse the repository at this point in the history
  • Loading branch information
imbrem committed Jun 22, 2024
1 parent 716f3d0 commit 8a2092d
Show file tree
Hide file tree
Showing 2 changed files with 211 additions and 2 deletions.
18 changes: 18 additions & 0 deletions DeBruijnSSA/BinSyntax/Syntax/Compose/Region.lean
Original file line number Diff line number Diff line change
Expand Up @@ -418,6 +418,24 @@ def associator_inv : Region φ :=
let2 (Term.var 1) $
ret (Term.pair (Term.pair (Term.var 2) (Term.var 0)) (Term.var 1))

theorem associator_append_associator_inv_def
: @associator φ ++ associator_inv = (let2 (Term.var 0) $
let2 (Term.var 0) $
let2 (Term.pair (Term.var 0) (Term.pair (Term.var 1) (Term.var 2))) $
let2 (Term.var 1) $
ret (Term.pair (Term.pair (Term.var 2) (Term.var 0)) (Term.var 1)))
:= rfl

def RWD.assocatior_append_associator_inv {Γ : ℕ → ε}
: RWD (PStepD Γ) (@associator φ ++ associator_inv) nil
:= by
rw [associator_append_associator_inv_def]
sorry

def RWD.associator_inv_append_associator {Γ : ℕ → ε}
: RWD (PStepD Γ) (@associator_inv φ ++ associator) nil
:= sorry

def proj_left : Region φ :=
let2 (Term.var 0) $
ret (Term.var 0)
Expand Down
Loading

0 comments on commit 8a2092d

Please sign in to comment.