@@ -184,27 +184,31 @@ namespace SNi
184184 replace ih2 := ih2 s' x rfl
185185 apply SNi.red j1 ih2
186186
187- @[simp]
188- abbrev SnSoundLemmaType : (v : SnVariant) -> (i : SnIndices v) -> Prop
189- | .neu, s => SN Red s
190- | .nor, s => SN Red s
191- | .red, (s, t) => SN Red s -> SN Red t
187+ -- TODO: prove soundness
188+ -- @[ simp ]
189+ -- abbrev SnSoundLemmaType : (v : SnVariant) -> (i : SnIndices v) -> Prop
190+ -- | .neu, s => SN Red s
191+ -- | .nor, s => SN Red s
192+ -- | .red, (s, t) => SN Red s -> SN Red t
192193
193- theorem sound {v i} : SNi v i -> SnBetaVarLemmaType v i := by
194- intro h; induction h <;> simp at *
195- case app s t j1 j2 ih1 ih2 =>
196- intro s x h1 h2; subst h1; subst h2
197- apply j1
198- case neu t j ih =>
199- intro s x h; subst h
200- have lem := beta_var j s x rfl
201- apply SNi.neu lem
202- case red t t' j1 j2 ih1 ih2 =>
203- intro s x h; subst h
204- have lem1 := SNi.red j1 j2
205- apply beta_var lem1 s x rfl
194+ -- theorem sound {v i} : SNi v i -> SnSoundLemmaType v i := by
195+ -- intro h; induction h <;> simp at *
196+ -- case var x =>
197+ -- apply SN.sn
198+ -- intro y r
199+ -- cases r
200+ -- case app s t j1 j2 ih1 ih2 =>
201+ -- apply SN.sn
202+ -- intro y r
203+ -- sorry
204+ -- case lam t A j ih =>
205+ -- sorry
206+ -- case neu => sorry
207+ -- case red => sorry
208+ -- case beta => sorry
209+ -- case step => sorry
206210
207- -- TODO: prove completeness, somehow harder than soundness
211+ -- TODO: prove completeness
208212 -- theorem complete {t} : SN Red t -> SNi .nor t := by sorry
209213
210214end SNi
0 commit comments