Theorem bout_ind : forall Pr : proc -> proc -> PP -> PP -> type -> Prop, (forall (p q : PP) (x : VV) (t : type) (P P' : proc), fresh q P -> q <> p -> sem (subs_var_proc P (pname q) x) (aout p q) P' -> Pr (res x t P) P' p q t) -> (forall (p q : PP) (x y : VV) (t t' : type) (P P' : proc), (forall r : PP, sem (subs_var_proc P (pname r) x) (about p q t) (subs_var_proc P' (pname r) y)) -> (forall r : PP, Pr (subs_var_proc P (pname r) x) (subs_var_proc P' (pname r) y) p q t) -> Pr (res x t' P) (res y t' P') p q t) -> (forall (P P' : proc) (p q : PP) (t : type), sem (par (ban P) P) (about p q t) P' -> Pr (par (ban P) P) P' p q t -> Pr (ban P) P' p q t) -> (forall (P P' Q : proc) (p q : PP) (t : type), fresh q Q -> sem P (about p q t) P' -> Pr P P' p q t -> Pr (par P Q) (par P' Q) p q t) -> (forall (P P' Q : proc) (p q : PP) (t : type), fresh q Q -> sem P (about p q t) P' -> Pr P P' p q t -> Pr (par Q P) (par Q P') p q t) -> (forall (P P' Q : proc) (p q : PP) (t : type), sem P (about p q t) P' -> Pr P P' p q t -> Pr (sum P Q) P' p q t) -> (forall (P P' Q : proc) (p q : PP) (t : type), sem P (about p q t) P' -> Pr P P' p q t -> Pr (sum Q P) P' p q t) -> (forall (P P' : proc) (p q r : PP) (t : type), sem P (about p q t) P' -> Pr P P' p q t -> Pr (mat (pname r) (pname r) P) P' p q t) -> forall (P P' : proc) (p q : PP) (t : type), sem P (about p q t) P' -> Pr P P' p q t.