Re: How to check whether an infinite set is closed under addition?

*To*: mathgroup at smc.vnet.net*Subject*: [mg124312] Re: How to check whether an infinite set is closed under addition?*From*: Andrzej Kozlowski <akoz at mimuw.edu.pl>*Date*: Mon, 16 Jan 2012 17:14:00 -0500 (EST)*Delivered-to*: l-mathgroup@mail-archive0.wolfram.com*References*: <201201150951.EAA19688@smc.vnet.net> <C9FCBB38-0E20-478B-97BC-BD57313E080F@mimuw.edu.pl>

On 15 Jan 2012, at 12:00, Andrzej Kozlowski wrote: > Let > On 15 Jan 2012, at 10:51, Rex wrote: > >> Given k positive numbers a_1<a_2<a_3<...<a_k, and all integers greater >> than a_k, we want to check whether this set {a_1, a_2, a_3,...a_k, a_k >> + 1, a_k+2, ......} is closed under addition. >> >> Is there any easy way to do this? any functions that we could use in >> Mathematica? >> >> Your help will be greatly appreciated. >> >> > > Lest's call your set {a1,a2,...,a3} "base". Then: > > closedQ[base_List] := > Complement[Select[Total[Subsets[base, {2}], {2}], # <= Max[base] &], > base] == {} > > For example: > > closedQ[{1, 2, 3}] > > True > > closedQ[{1, 4, 6, 7}] > > False > > Andrzej Kozlowski > The program above does dome unnecessary comparisons since anything added to the largest element of the base will obviously included in the complete set. If the base is ordered, a better program will be: closedQ[base_List] := Complement[ Select[Total[Subsets[Most[base], {2}], {2}], # <= Last[base] &], base] == {} If it is not ordered we could use Sort[base] in place of base. Andrzej Kozlowski

**References**:**How to check whether an infinite set is closed under addition?***From:*Rex <aoirex@gmail.com>