Fixpoint FA_path p p' (lp : list cbv) := match lp with
| [] => p = p'
| h :: t => In p (first_activations h) /\ FA_path h p' t
end.

Lemma first_activation_down_rank_lt p p' i s p0 c1 t c2 v:
let proof_tree := cbv_update i s p0 c1 t c2 v in
PPO_prog ->
wf proof_tree ->
In p' (activations proof_tree) -> In p (first_activations p') ->
In p (first_activations_at_given_rank (activation_rank rank p) proof_tree) ->
activation_rank rank p < activation_rank rank p'.