Section If.
Variable n : nat.
Variable sig : finType.
Variable pM1 : pTM sig bool n.
Variable F : finType.
Variable pM2 : pTM sig F n.
Variable pM3 : pTM sig F n.
Definition If := Switch pM1 (fun b => if b then pM2 else pM3).

Lemma If_RealiseIn R1 R2 R3 k1 k2 k3 :
pM1 ⊨c(k1) R1 ->
pM2 ⊨c(k2) R2 ->
pM3 ⊨c(k3) R3 ->
If ⊨c(1 + k1 + Nat.max k2 k3)
(R1 |_true) ∘ R2 ∪ (R1 |_false) ∘ R3.