proposition: Lemma nodes_preserved_1 : forall (cfg : BDDconfig) (node : ad) (n m : nat) (x : BDDvar) (l r : ad), BDDconfig_OK cfg -> MapGet _ (fst cfg) node = Some (x, (l, r)) -> n = S m -> nat_of_N (var cfg node) < n -> nodes_preserved (fst (BDDneg_2 (fst (BDDneg_2 cfg l m)) r m)) (fst (BDDneg_2 cfg node n)).
proof: Proof. intro cfg. elim cfg; clear cfg. intros bs y. elim y; clear y; intros share counter. intros node n m x l r H H0 H1 H2. rewrite H1. simpl in |- *. simpl in H0. rewrite H0. apply BDDmake_preserves_nodes. apply BDDneg_2_config_OK_lemma_2 with (node := node) (x := x) (n := n). assumption. assumption. assumption. assumption. Qed.
imports: Bool Sumbool Arith ZArith NArith Nnat Ndec Ndigits IntMap(Allmaps) Wf_nat BDDvar_ad_nat bdd1 bdd2 bdd3 bdd4