Section Confluence.
Context {X: Const}.
Reserved Notation "s ≫ t" (at level 60).
Inductive par : exp X -> exp X -> Prop :=
| parVar x: var x ≫ var x
| parConst c: const c ≫ const c
| parLam s s': s ≫ s' -> (lambda s) ≫ lambda s'
| parBeta s s' t t' u: s ≫ s' -> t ≫ t' -> u = beta s' t' -> (lambda s) t ≫ u
| parApp s s' t t': s ≫ s' -> t ≫ t' -> s t ≫ s' t'
where "s ≫ t" := (par s t).
Hint Constructors par : core.

Lemma refl_par: forall s, s ≫ s.