fact: Definition doubleI_transdef A B (T: fterm2) := let T1 a f g x y := Yo (x <o a) (Vf (Vf f x) y) (Vf g y) in let T2 a f g p := T1 a f g (P p) (Q p) in let T4 a b f g := Lfs (T2 a f g) (doubleI_E a b) in let T5 fa fb := T (J (source fa) (source fb)) (T4 (source fa) (source fb) fa fb) in let T6 fa := otrans_defined B (T5 fa) in let f := otrans_defined A T6 in Lfs (fun p => Vf (Vf f (P p)) (Q p)) (A\times B).
imports: mathcomp(ssreflect ssrfun ssrbool eqtype ssrnat)