Skip to content

Commit 1d8b8c5

Browse files
committed
update deps and refactor
1 parent 92009ad commit 1d8b8c5

File tree

12 files changed

+509
-524
lines changed

12 files changed

+509
-524
lines changed

LeanStlc.lean

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,6 @@ import LeanStlc.Typing
55
import LeanStlc.Preservation
66
import LeanStlc.Progress
77
import LeanStlc.WeakNorm
8+
import LeanStlc.SNi
89
import LeanStlc.StrongNorm
910
import LeanStlc.Infer

LeanStlc/Progress.lean

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ namespace Term
1212
end Term
1313

1414
inductive Value : Term -> Prop where
15-
| var : Value (.var x)
15+
| var : Value #x
1616
| app :
1717
Value f ->
1818
Value a ->
@@ -36,7 +36,7 @@ theorem value_sound : Value t -> ∀ t', ¬ (t ~> t') := by
3636
apply ih _ r
3737

3838
inductive VarSpine : Term -> Prop where
39-
| var : VarSpine (.var x)
39+
| var : VarSpine #x
4040
| app :
4141
VarSpine h ->
4242
Value t ->

LeanStlc/Reduction.lean

Lines changed: 14 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,8 @@ inductive Red : Term -> Term -> Prop where
1313

1414
infix:80 " ~> " => Red
1515
infix:81 " ~>* " => Star Red
16-
17-
inductive RedSubstAction : Subst.Action Term -> Subst.Action Term -> Prop where
18-
| su {t t'} : t ~> t' -> RedSubstAction (.su t) (.su t')
19-
| re {x} : RedSubstAction (.re x) (.re x)
20-
21-
infix:80 " ~s> " => RedSubstAction
22-
infix:81 " ~s>* " => Star RedSubstAction
16+
infix:80 " ~s> " => ActionRed Red
17+
infix:81 " ~s>* " => Star (ActionRed Red)
2318

2419
inductive ParRed : Term -> Term -> Prop where
2520
| var {x} : ParRed (.var x) (.var x)
@@ -37,13 +32,8 @@ inductive ParRed : Term -> Term -> Prop where
3732

3833
infix:80 " ~p> " => ParRed
3934
infix:81 " ~p>* " => Star ParRed
40-
41-
inductive ParRedSubstAction : Subst.Action Term -> Subst.Action Term -> Prop where
42-
| su {t t'} : t ~p> t' -> ParRedSubstAction (.su t) (.su t')
43-
| re {x} : ParRedSubstAction (.re x) (.re x)
44-
45-
infix:80 " ~ps> " => ParRedSubstAction
46-
infix:81 " ~ps>* " => Star ParRedSubstAction
35+
infix:80 " ~ps> " => ActionRed ParRed
36+
infix:81 " ~ps>* " => Star (ActionRed ParRed)
4737

4838
namespace ParRed
4939
theorem refl {t} : t ~p> t := by
@@ -92,9 +82,9 @@ namespace ParRed
9282
generalize zpdef : σ' x = z' at *
9383
cases z <;> cases z'
9484
all_goals (cases h; try simp [*])
95-
apply ParRedSubstAction.re
85+
apply ActionRed.re
9686
case _ r =>
97-
apply ParRedSubstAction.su
87+
apply ActionRed.su
9888
apply subst _ r
9989

10090
theorem subst_red_lift {σ σ' : Subst Term} :
@@ -103,7 +93,7 @@ namespace ParRed
10393
:= by
10494
intro h x
10595
cases x <;> simp
106-
case _ => apply ParRedSubstAction.re
96+
case _ => apply ActionRed.re
10797
case _ x =>
10898
have lem := subst_action (· + 1) (h x); simp at lem
10999
apply lem
@@ -147,8 +137,8 @@ namespace ParRed
147137
case beta ih1 ih2 =>
148138
apply hsubst
149139
intro x; cases x <;> simp
150-
apply ParRedSubstAction.su; apply ih2
151-
apply ParRedSubstAction.re; apply ih1
140+
apply ActionRed.su; apply ih2
141+
apply ActionRed.re; apply ih1
152142
case app f f' a a' r1 r2 ih1 ih2 =>
153143
cases f <;> simp at *
154144
case var => apply ParRed.app ih1 ih2
@@ -195,9 +185,9 @@ namespace Red
195185
generalize zpdef : σ' x = z' at *
196186
cases z <;> cases z'
197187
all_goals (cases h; try simp [*])
198-
apply RedSubstAction.re
188+
apply ActionRed.re
199189
case _ r =>
200-
apply RedSubstAction.su
190+
apply ActionRed.su
201191
apply subst _ r
202192

203193
theorem subst_red_lift {σ σ' : Subst Term} :
@@ -206,7 +196,7 @@ namespace Red
206196
:= by
207197
intro h x
208198
cases x <;> simp
209-
case _ => apply RedSubstAction.re
199+
case _ => apply ActionRed.re
210200
case _ x =>
211201
have lem := subst_action (· + 1) (h x); simp at lem
212202
apply lem
@@ -252,14 +242,14 @@ namespace Red
252242
case _ => apply Star.refl
253243
case _ r1 r2 ih =>
254244
apply Star.step ih
255-
apply ParRedSubstAction.su r2
245+
apply ActionRed.su r2
256246

257247
theorem seqs_action_lift : t ~>* t' -> .su t ~s>* .su t' := by
258248
intro r; induction r
259249
case _ => apply Star.refl
260250
case _ r1 r2 ih =>
261251
apply Star.step ih
262-
apply RedSubstAction.su r2
252+
apply ActionRed.su r2
263253

264254
theorem seqs_action_destruct : a ~s>* .su t' -> ∃ t, a = .su t ∧ t ~>* t' := by
265255
intro r

0 commit comments

Comments
 (0)