1 (**************************************************************************)
4 (* ||A|| A project by Andrea Asperti *)
6 (* ||I|| Developers: *)
7 (* ||T|| The HELM team. *)
8 (* ||A|| http://helm.cs.unibo.it *)
10 (* \ / This file is distributed under the terms of the *)
11 (* v GNU General Public License Version 2 *)
13 (**************************************************************************)
15 include "Basic_2/grammar/term.ma".
17 (* SIMPLE (NEUTRAL) TERMS ***************************************************)
19 inductive simple: predicate term ≝
20 | simple_atom: ∀I. simple (⓪{I})
21 | simple_flat: ∀I,V,T. simple (ⓕ{I} V. T)
24 interpretation "simple (term)" 'Simple T = (simple T).
26 (* Basic inversion lemmas ***************************************************)
28 fact simple_inv_bind_aux: ∀T. 𝐒[T] → ∀J,W,U. T = ⓑ{J} W. U → False.
30 [ #I #J #W #U #H destruct
31 | #I #V #T #J #W #U #H destruct
35 lemma simple_inv_bind: ∀I,V,T. 𝐒[ⓑ{I} V. T] → False.