(** The p{^ th} element of [fin m] viewed as the p{^ th} element of [fin (n + m)] Really really inefficient !!! *)

(* Specifications: *)
Lemma R_inj {m} n (p q : t m) : R n p = R n q -> p = q.
Lemma L_R_neq n m (p : t n) (q : t m) : L m p <> R n q.
Fixpoint case_L_R' {n m} : forall (P : t (n + m) -> Type) (p : t (n + m)),
(forall q, P (L m q)) -> (forall q, P (R n q)) -> P p :=
match n with
| 0 => fun P p HL HR => HR p
| S n' => fun P p HL HR => Fin.caseS' p P
(HL Fin.F1)
(fun p' => case_L_R' (fun q => P (Fin.FS q)) p' (fun q => HL (Fin.FS q)) HR)
end.