with Straightening_Syzygies; use Straightening_Syzygies; package body Bracket_Systems is function Straightening_Syzygies ( n,d : natural ) return Bracket_System is nonstd : Bracket_Polynomial := nonStandard_Monomials(n,d); res : Bracket_System(1..Number_of_Monomials(nonstd)); cnt : natural := 0; procedure Store_Syzygy ( t : in Bracket_Term; continue : out boolean ) is begin cnt := cnt+1; res(cnt) := Straightening_Syzygy(t.monom); continue := true; end Store_Syzygy; procedure Store_Syzygies is new Enumerate_Terms(Store_Syzygy); begin Store_Syzygies(nonstd); return res; end Straightening_Syzygies; procedure Clear ( s : in out Bracket_System ) is begin for i in s'range loop Clear(s(i)); end loop; end Clear; end Bracket_Systems;