refine
(fun s : srt_v6 =>
match s return {sp : srt_v6 | ppal (axiom_v6 s) univ sp} with
| Sprop c => exist _ (Stype 0) _
| Stype n => exist _ (Stype (S n)) _
end).
split; intros; auto with arith pts.
inversion_clear H; auto with arith pts.
split; intros; auto with arith pts.
inversion_clear H; auto with arith pts.
Qed.

Lemma v6_inf_rule :
forall x1 x2 : srt_v6,
{x3 : srt_v6 | rules_v6 x1 x2 x3 &
forall s1 s2 s3 : srt_v6,
rules_v6 s1 s2 s3 -> univ x1 s1 -> univ x2 s2 -> univ x3 s3}.