fact: Fixpoint norm_aux n b a x y := match n with | O => VLSet.empty | S n => match x with | one => norm_aux' n b a y | zero => b | dot x1 x2 => norm_aux n b a x1 (dot x2 y) | plus x1 x2 => norm_aux n (norm_aux n b a x1 y) a x2 y | var i => norm_aux' n b (List.cons i a) y end end with norm_aux' n b a y := match n with | O => VLSet.empty | S n => match y with | one => VLSet.add a b | zero => b | dot y1 y2 => norm_aux n b a y1 y2 | plus y1 y2 => norm_aux' n (norm_aux' n b a y1) a y2 | var i => VLSet.add (List.cons i a) b end end.
imports: ATBR(MyFSets MyFSetProperties) ATBR(Common) ATBR(Classes) ATBR(Graph) ATBR(Monoid) ATBR(SemiLattice) ATBR(Numbers) ATBR(Reification)