Definition config_weight (M: Cm1) : Config -> nat :=
fun '{| state := p; value := v |} => p + length M * v.

Lemma config_weight_run_monotone {M: Cm1} {x: Config} {n: nat} :
not (halting M (Nat.iter n (step M) x)) -> config_weight M x < config_weight M (Nat.iter (1+n) (step M) x).