Lemma BDDdummy_lemma_2 : forall bound : nat, (forall m : nat, m < bound -> forall (cfg : BDDconfig) (node1 node2 : ad) (memo : BDDor_memo), BDDconfig_OK cfg -> BDDor_memo_OK cfg memo -> config_node_OK cfg node1 -> config_node_OK cfg node2 -> (is_internal_node cfg node1 -> is_internal_node cfg node2 -> max (nat_of_N (var cfg node1)) (nat_of_N (var cfg node2)) < m) -> BDDconfig_OK (fst (BDDor_1 cfg memo node1 node2 m)) /\ BDDor_memo_OK (fst (BDDor_1 cfg memo node1 node2 m)) (snd (snd (BDDor_1 cfg memo node1 node2 m))) /\ config_node_OK (fst (BDDor_1 cfg memo node1 node2 m)) (fst (snd (BDDor_1 cfg memo node1 node2 m))) /\ nodes_preserved cfg (fst (BDDor_1 cfg memo node1 node2 m)) /\ BDDvar_le (var (fst (BDDor_1 cfg memo node1 node2 m)) (fst (snd (BDDor_1 cfg memo node1 node2 m)))) (BDDvar_max (var cfg node1) (var cfg node2)) = true /\ bool_fun_eq (bool_fun_of_BDD (fst (BDDor_1 cfg memo node1 node2 m)) (fst (snd (BDDor_1 cfg memo node1 node2 m)))) (bool_fun_or (bool_fun_of_BDD cfg node1) (bool_fun_of_BDD cfg node2))) -> forall (cfg : BDDconfig) (node1 node2 : ad) (memo : BDDor_memo), BDDconfig_OK cfg -> BDDor_memo_OK cfg memo -> config_node_OK cfg node1 -> config_node_OK cfg node2 -> (is_internal_node cfg node1 -> is_internal_node cfg node2 -> max (nat_of_N (var cfg node1)) (nat_of_N (var cfg node2)) < bound) -> BDDor_memo_lookup memo node1 node2 = None -> in_dom (BDDvar * (ad * ad)) node1 (fst cfg) = true -> node2 = BDDone \/ in_dom (BDDvar * (ad * ad)) node2 (fst cfg) = true -> is_internal_node cfg node1 -> in_dom (BDDvar * (ad * ad)) node2 (fst cfg) = true -> is_internal_node cfg node2 -> forall bound' : nat, bound = S bound' -> max (nat_of_N (var cfg node1)) (nat_of_N (var cfg node2)) < bound -> BDDcompare (var cfg node1) (var cfg node2) = Datatypes.Eq -> BDDconfig_OK (fst (BDDor_1 cfg memo node1 node2 bound)) /\ BDDor_memo_OK (fst (BDDor_1 cfg memo node1 node2 bound)) (snd (snd (BDDor_1 cfg memo node1 node2 bound))) /\ config_node_OK (fst (BDDor_1 cfg memo node1 node2 bound)) (fst (snd (BDDor_1 cfg memo node1 node2 bound))) /\ nodes_preserved cfg (fst (BDDor_1 cfg memo node1 node2 bound)) /\ BDDvar_le (var (fst (BDDor_1 cfg memo node1 node2 bound)) (fst (snd (BDDor_1 cfg memo node1 node2 bound)))) (BDDvar_max (var cfg node1) (var cfg node2)) = true /\ bool_fun_eq (bool_fun_of_BDD (fst (BDDor_1 cfg memo node1 node2 bound)) (fst (snd (BDDor_1 cfg memo node1 node2 bound)))) (bool_fun_or (bool_fun_of_BDD cfg node1) (bool_fun_of_BDD cfg node2)).