[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Continuous subset of integer range



Hi,

I need to find all subsets of an integer range which are continuous. For example for 

Input:- 1..4
output:- {1}, {2}, {3}, {4}, {1,2}, {2,3}, {3,4}, {1,2,3}, {2,3,4}, {1,2,3,4}

I wrote the following operator and check with "Evaluate Constant _expression_ in TLC". It is giving me an unexpected output

{s \in SUBSET {1,2,3,4}:  /\  s # {}

  /\ \A x \in s : IF x = Max(s)                                                                                     THEN TRUE        \* if x is maximum of the range than TRUE                                                                     ELSE (x+1) \in s}   \* other wise x+1 should be there in the set


The output I am getting is

{s \in {{}, {1}, {2}, {3}, {4}, {1, 2}, {1, 3}, {1, 4}, {2, 3}, {2, 4}, {3, 4}, {1, 2, 3}, {1, 2, 4}, {1, 3, 4}, {2, 3, 4}, {1, 2, 3, 4}} : <_expression_ line 11, col 27 to line 12, col 428 of module MC> }



Question:-

1. What are these charcaters I am getting in the output? Is this some error?

2. Is there a better/easier way of doing this?

3. Is there a way to convert the set to a tupple (Function)? And then get elements of the tupple in a (domain) range?

   Like for tupple <<1,2,3,4>>
        give in elements in Domain range of 2 to 4. Which are {2,3,4}



Thanks

Maneet