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

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

I just realized that there should be a further story here. To check whether the set is complete, we should also check whether the addition of a_i with itself with multiple times is also included in the set. This means that for a set A to be closed, its elements a_i =E2=88=88 A shou= ld satisfy 1). a_i + a_j =E2=88=88 A for any a_i and a_j; 2). a_i * n =E2=88=88 A for any positive integer n. Any more tips to quickly check the second condition? Thanks. Best, Rex On Sun, Jan 15, 2012 at 2:57 PM, Mobius ReX <aoirex at gmail.com> wrote: > Dear Andrzej, > > Cool! Thanks a lot. > > Best, > Renjun > > > On Sun, Jan 15, 2012 at 4:22 AM, Andrzej Kozlowski <akoz at mimuw.edu.pl> wr= ote: >> >> 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] &], >>> =C2 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] := >> =C2 Complement[ >> =C2 Select[Total[Subsets[Most[base], {2}], {2}], # <= Last[base] &]= , >> =C2 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>