Giter Site home page Giter Site logo

alloytools.github.io's People

Contributors

akngs avatar aleksandarmilicevic avatar alexashley avatar atdyer avatar dependabot[bot] avatar dnjackson avatar eskang avatar faboul avatar grayswandyr avatar jessitron avatar jiribenes avatar jvoigtlaender avatar ligurio avatar note avatar pkriens avatar pvojtechovsky avatar rezarastak avatar tnelson avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

alloytools.github.io's Issues

Ensure liveliness of links on Alloy's public website

Hello!
Multiple pages(citations, applications, etc.) have issues with the links. The issues vary from the content exists but the links need updating to contents no longer there, to domains no longer valid.
I will be submitting a pull request with fixes so per the guidelines this is the issue/branch I will be referencing.
Thanks for all the hard work!

Mistaken lexical grammar for 'greater than or equal to' token

In the reference manual (http://alloytools.org/spec.html), under the heading "Precedence and Associativity" is a list of "comparison operators", which is written as: "in, =, <, >, =, =<, =>", but the last of these is wrong, as I believe that => is only used for implication in Alloy, and it should be written as >= instead in this list.

The same problem appears in the reference manual under the heading "Boolean Expressions", which has the production:

compareOp ::= in | = | < | > | =< | =>

again I believe that => should be >= in this case, as just below this the manual says:

The constraint i >= j is true when i is greater than or equal to j.

The “less than or equal to” operator is written unconventionally with the equals symbol first so that it does not have the appearance of an arrow, which might be confused with a logical implication. For all these operators, the sum function is applied implicitly to their arguments, so that if a non-scalar set of integers is presented, the comparison acts on the sum of its elements.

Documentation issues regarding sequence operations and preconditions

There are some documentation errors for sequences (seq keyword), found at the following page:
http://alloy.lcs.mit.edu/alloy/documentation/quickguide/seq.html

Preconditions for sequence operations are stated in the documentation, but the meaning of a precondition in terms of model finding is not consistent. A formula which contains a seq operator with a false precondition is sometimes unsatisfiable, sometimes satisfiable.

Ideally, Alloy should not return a model where the precondition is false (ie, a predicate applied to a seq operator whose precondition is false should be valued as false also). However, this is certainly an issue to discuss individually.

For now, the documentation should be updated to reflect the current behavior.

Here is a list of preconditioned operators with their behaviour and an Alloy model test_seq_1.txt to illustrate them.

s.setAt [i, x]
Precondition: 0 <= i < #s
It should be : 0 <= i <= #s
Unsatisfiable if precondition not satisfied

s.insert [i, x]
Precondition: 0 <= i <= #s
Unsatisfiable if precondition not satisfied

s.delete [i]
Precondition: 0 <= i < #s
Unsatisfiable if i < 0
Satisfiable if i >= #s, returns the input sequence
Precondition should be : i >= 0

s.subseq [from, to]
Precondition: 0 <= from <= to < #s
Satisfiable if precondition is false, returns the empty sequence
Should not state a precondition

Pull request to follow.

Document new features in Alloy 6 as syntactic sugars

To help people make the transition from older versions of Alloy, such as in the book, and Alloy 6, it would be helpful to explain how one would desugar the new features into the older syntax without the new features. For example, I suspect that uses of var can be desugared into adding a time column and making other localized changes. An alternative would be to point people to where examples of the new features are and explain how those examples would be (or are already) written in the older syntax.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.