Alloy Community

User login

  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 25.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 26.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 27.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 28.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 29.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 30.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 31.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 32.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 33.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 34.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 25.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 26.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 27.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 28.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 29.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 30.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 31.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 32.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 33.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 34.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 25.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 26.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 27.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 28.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 29.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 30.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 31.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 32.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 33.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 34.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 25.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 26.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 27.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 28.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 29.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 30.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 31.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 32.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 33.
  • : Function ereg_replace() is deprecated in /afs/csail.mit.edu/proj/alloy/www/data/community/sites/all/themes/Aeon5/advforum/forum-thread.tpl.php on line 34.

A problem I cannot solve with Alloy

 
Posted on: Thu, 03/20/2008 - 10:37
Joined: 2008-01-25
Points: 1874
User is offline
A problem I cannot solve with Alloy
Date: Wed, 07 Mar 2007 21:10:12 -0000
From: Pawel Sidoryk

Hello everybody,

I have a very small problem that I cannot solve with alloy. Here is
the code:

abstract sig State{}

sig State1 extends State{}

sig State2 extends State{}

pred oper(s, s': State) {
    s in State1 && s' in State2
}

pred anti_oper(s: State) {
    s in State2
}

assert anti_oper_ok{
    all s: State | not anti_oper[s] => some s': State | oper[s, s']
}

check anti_oper_ok

Alloy finds a counterexample (all State1 elements, no State2 element)
and that is how it is expected to run.

But it does not solve my problem. And my problem is to find for a
given 2-argument predicate (like oper(s, s')) a different predicate
(like anti_oper(s)) that is true only if oper(s, s') is false for all
possible s' allowed by the model.

In the above example it is plain to see that anti_oper(s) is a
solution for oper(s, s) but I do not know how to prove such a simple
fact with Alloy. assert anti_oper_ok is not proper for this purpose
because some s': State there does not cover all possible occurrences
of a State, it covers occurrences of a State for a counterexample
that has been found.

Does anybody know how to prove that anti_oper(s) is a solution for
oper(s, s) with Alloy?
 
Posted on: Thu, 03/20/2008 - 10:37    #1
Joined: 2008-01-25
Points: 1874
User is offline
Date: Wed, 7 Mar 2007 20:04:42 -0500 (EST)
From: Felix Chang

On Wed, 7 Mar 2007, Pawel Sidoryk wrote:
> And my problem is to find for oper(s,s')
> a different predicate anti_oper(s)
> that is true only if oper(s, s') is false
> for all possible s' allowed by the model.

I don't think I understand your sentence. Let me paraphrase:

Given op(s,s'), how do I write antiOp(s), such that
"all s | (anti_oper(s) <=> (all s' | !oper(s,s'))" ?
 
Posted on: Thu, 03/20/2008 - 10:37    #2
Joined: 2008-01-25
Points: 1874
User is offline
Date: Thu, 08 Mar 2007 16:48:56 -0000
From: Pawel Sidoryk

I would like to prove that anti_oper(s) that I have found satisfies
the condition:

"all s | (anti_oper(s) <=> (all s' | !oper(s,s'))"

for all possible s and s'. And I cannot do it with Alloy.

The reason is that "all s'" covers a subset of State contained within
a counterexample, not all possible States. And sometimes "all s' |
!oper(s,s')" is true because of that though it is not true for all
possible States.
 
Posted on: Thu, 03/20/2008 - 10:37    #3
Joined: 2008-01-25
Points: 1874
User is offline
Date: Thu, 8 Mar 2007 20:22:14 -0500 (EST)
From: Felix Chang

What you wrote seems to be:

  all s,s' | (all s | (anti_oper(s) <=> (all s' | !oper(s,s'))))

Which is logically equivalent to

  all x,y | (all s | (anti_oper(s) <=> (all s' | !oper(s,s'))))

Which is logically equivalent to

  #State>0 && (all s | (anti_oper(s) <=> (all s' | !oper(s,s'))))

So, I'm sorry, I'm still not understanding you.
If you want, please email me directly, and when we
finally sort out the misunderstanding, I'll post a summary
reply for the other members' benefit.

Syndicate content  

The development of this site is supported by the National Science Foundation under Computing Research Infrastructure Grant No. 0707612.

Theme originally designed by Chris Herberte