Skip to content

Commit f1a7e5b

Browse files
committed
finished toSSAExpr!_vars_equiv up to freshName lemmas
1 parent 357b579 commit f1a7e5b

1 file changed

Lines changed: 8 additions & 8 deletions

File tree

Pullback/SSA/SSADo.lean

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,6 @@ theorem SSADo.eval_letM
248248
v hval
249249

250250

251-
#check SSADo.toSSAExpr!
252251
theorem SSADo.toSSAExpr!_vars_equiv
253252
{vars₁ vars₂ mutVars kMutVars : VarMap} {kbreak kcontinue : Option Name}
254253
(hvars : VarMap.equiv vars₁ vars₂) :
@@ -294,13 +293,14 @@ theorem SSADo.toSSAExpr!_vars_equiv
294293
simp [toSSAExpr!_vars_equiv hvars, SSAExpr.inferType!_eq_of_vars_equiv hvars]
295294
| ifthenelse c t e rest => by
296295
simp [toSSAExpr!]
297-
have : freshName (Array.map (fun x => x.1) vars₁ ++ (t.vars ++ e.vars)) =
298-
freshName (Array.map (fun x => x.1) vars₂ ++ (t.vars ++ e.vars)) := sorry
299-
simp [this]
300-
simp [toSSAExpr!_vars_equiv hvars, SSAExpr.inferType!_eq_of_vars_equiv hvars]
301-
-- rw [toSSAExpr!_vars_equiv (vars₂ := vars₂), SSAExpr.inferType!_eq_of_vars_equiv (vars₂ := vars₂)]
302-
-- apply And.intro
303-
sorry
296+
have hfresh :
297+
freshName (Array.map (fun x => x.1) vars₁ ++ (t.vars ++ e.vars)) =
298+
freshName (Array.map (fun x => x.1) vars₂ ++ (t.vars ++ e.vars)) := by
299+
sorry
300+
have hEqPush : ∀ kb τ, VarMap.equiv (Array.push vars₁ (kb, τ)) (Array.push vars₂ (kb, τ)) :=
301+
VarMap.equiv_push vars₁ vars₂ hvars
302+
simp [hfresh]
303+
simp [toSSAExpr!_vars_equiv hvars, toSSAExpr!_vars_equiv (hEqPush _ _), SSAExpr.inferType!_eq_of_vars_equiv hvars, SSAExpr.inferType!_eq_of_vars_equiv (hEqPush _ _)]
304304

305305
theorem SSADo.toSSAExpr_var_push
306306
{vars mutVars kMutVars : VarMap} {kbreak kcontinue : Option Name}

0 commit comments

Comments
 (0)