Comments (2)
Actually, adding the globally
by default is not implemented in the desugarer. I guess, we have to revisit what the proper desugaring should be. What you have
[globally (this . c0_b => this . c0_b . c0_c) ]
only works for clafers with card max 1. And it is even incorrect. Should be:
[globally (some this . c0_b => some this . c0_b . c0_c) ]
In general, we need to quantify over each instance of b like this
[globally (all x : this . c0_b | some x.c0_c) ]
Also, wanted to reiterate that the insertion of quantifiers actually happens in the type system, not in the desugarer.
from clafer.
I can't study this in detail now (drowning in overwork), but let me just mention that this case is covered in the ECOOP draft. We have identified some problems in the draft, but globally seems allright.:
A 2..5
B ∗
[ φ( "this" ) ]
[ G(all b : this.B | φ( b/this ) ) ]
[ G( all a : this.A | G(all b : a.B | b =>φ( b/this ) )) ]
(from page 10)
from clafer.
Related Issues (20)
- testcase: tmp_after01.cfr
- Constraint language not fully supported in assertions HOT 3
- Node without parent HOT 1
- After until pattern (test case: tmp_afteruntil01.cfr) HOT 2
- 'once' keyword not supported (tmp_before01.cfr) HOT 2
- before pattern (testcase: tmp_before01.cfr)
- Between pattern (Test case: tmp_betweenand01.cfr) HOT 3
- transitions (testcase: tmp_clafertransitions01.cfr) HOT 2
- transitions (testcase: tmp_clafertransitions02.cfr) HOT 1
- combined constraints (tmp_combinedEGX01.cfr)
- combined constraints (tmp_combinedEGX02.cfr)
- Power Window Total (tmp_powerwindow_total.cfr) HOT 1
- TLS Handshake Protocol (tmp_TLSHandshakeProtocol_distributed.cfr)
- eventually pattern (tmp_eventually01.cfr) HOT 2
- eventually pattern (tmp_eventually02.cfr)
- eventually pattern (tmp_eventually04.cfr) HOT 1
- testcase: (tmp_TrafficLight,cfr)
- Most appropriate way to translate references HOT 4
- Power window model results HOT 8
- Hierarchy constraints issue HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from clafer.