Ltac pull_left A := repeat (rewrite <- (pull_right A) || rewrite <- (pull_right0 A)).Ltac normalize := repeat normalize1.Definition mark {A: Type} (i: nat) (j: A) := j.

Lemma swap_mark0 {A} {JA: Join A}{PA: Perm_alg A}{agA: ageable A}{AgeA: Age_alg A}: forall i j Pi Pj, (i<j)%nat -> mark i Pi * mark j Pj = mark j Pj * mark i Pi.