問題タブ [alloy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
alloy - 合金仕様の問題
以下は、私が最近携帯電話のテキストメッセージ用に完成させたまあまあの合金仕様です。それは単なる基本的なテキストメッセージの要件であり、それは慣習であるため、私は守るべき厳格な要件はありません。ただし、Name-Mobileペアのペアを1つしか取得できないなど、いくつかの厄介な問題があります。2つのメッセージセットが一貫して1つの名前を指しているのはなぜですか?質問を除いて、事実と述語は非常に単純です。合金自体を学ぶためのフィードバックが必要ですので、十分に批判してください。
以下のことをしているときに私が心に留めていたこと;
1つのメッセージボックスに0個以上のメッセージセットがあります。セットは1人のみに属し、セットは無料ではありません。各セットには、メッセージ行、開始キーと終了キー、行、およびカーソル位置で構成される1つ以上のメッセージがあります。複数のメッセージが同じ人に属することはできますが、同時に2人に属することはできません。各行には1つ以上のキーがあり、開始キーと終了キーがあります。また、行には新しい行がある場合とない場合があります。各キーには、次のキーがある場合とない場合があります。キーはタッチパッドを介して押されます。すべての名前には携帯電話番号があり、ContactListに記録されます。2人の名前が同じ携帯電話を持つことはできませんが、人は複数の電話番号を持つことができます。
ありがとう。
verification - 合金マッピング関係
私はいくつかの検証を行うために合金を調べ始めています。私はプログラミング言語を単純な構造で表現するための何かを作るために練習しようとしています。
マッピングエンティティには、プログラムと依存関係があります
プログラムには機能があります
関数にはコード行があります
依存関係は、プログラム内のある関数の2行のコードを相互にマッピングするエンティティです。
これが私がやろうとしたことですが、出力グラフは、依存関係タプルにリンクされているが関数に一致していないコード行を示しています。コードのすべての行を関数に含める必要があり、依存関係にある場合とない場合があります...
alloy - 弦合金の使用
私はAlloyモジュールを持っています
このモードをトライアドで実行すると、次のメッセージが表示されます。
私はそれが何を意味するのか分かりませんか?
2\ 2 つの Alloy モデルがある場合、各モデルには同じ要素 (mode1/name、model2/name) があります。mode1/name = model2/name と言うことができるファクトまたは pred を作成するにはどうすればよいですか?
よろしく
alloy - 合金の推移閉包
ここで誰かが、マトリックスの観点から、Alloyで推移閉包演算子がどのように機能するかを説明できますか?つまり、閉包作用素を実際の行列演算に変換するための変換規則は何ですか。
alloy - 合金の式の翻訳
私は次のように少し合金の仕様を持っています:
最初に、alloyはf1をブール行列に変換し、次にそれに対してクロージャ操作を実行すると思いました。しかし、この種の変換は行わないようです(ブール行列の作成前に何かを実行しているように見えます)。では、このf1はどのように正確に翻訳されるのでしょうか?関係述語を使用していますか?私は合金の翻訳について非常に興味があります。
alloy - Alloy Analyzer 4.2 (mac) と Alloy API
私は現在、Java でいくつかの注釈を処理して合金モデルを構築し、合金 API を使用して解析し、いくつかの合金コマンドを実行するプログラムを作成しています。生成された合金モデルを合金アプリでテストすると、正常に動作し、期待どおりの結果が得られます。しかし、生成された合金モデルを API で実行すると、「sig this/ObjectName のスコープを指定する必要があります」と表示されます。こんな感じで文字列から合金コードを読み取ります。
私が使用する唯一のオプションは、SAT4J ソルバーと 1 の skolemdepth です。
次に、world からのコマンドを繰り返し処理し、それらを kodkod に変換して実行します。
私の更新された合金コードは次のようになります。
では、for 1 Configuration、8 Elements がすべての拡張 sig のスコープを設定すると思っていたので、これを修正する方法を知っている人はいますか?
編集*
提案を使用して合金モデルを更新しましたが、同じエラーが表示されます。
alloy - semantic change in 4.2?
My question is whether the semantics of () in the declaration of fields had changed in Alloy 4.2.
I read in "Software Abstractions" that
means that the relation addr associates at most one address with each address book and name pair but this does not hold when running Alloy 4.2
For instance, for
Alloy 4.2 finds a model instance which has for instance AddBX$2 with
If I use instead
then no instance for the same run is found. This seems to indicate that in Alloy 4.2 this is how to declare that the relation addr associates at most one address with each address book and name pair but I would like to have a confirmation for this.
alloy - リレーショナル結合におけるAlloy述語の意味
名簿の例の次の単純な変形を考えてみましょう
一部のモデルインスタンスでは、エバリュエーターで次の結果を得ることができます
showがリレーションだった場合、{true、false}のような答えが得られると期待するかもしれません。述語である場合、単一のブール値が返されます。show [Book]は、その上の全称記号表現の省略形であると期待していました。代わりに、存在記号を使用して結果を折りたたんでいるようです。誰もがこれの合理的な理由を知っていますか、またはshow [Book]の意味について別の説明がありますか?
alloy - 合金でコマンドスコープを実行する
In alloy consider
sig Queue{ link : Queue, elem: Int }
consider that I have some predicate predicate-1, How would I define scope when I run predicate-1 for Queue <=1 , int ={-3,-2,0,2}. I have not listed the predicate here
run predicate-1 for 1 Queue, int scope here
don't know what would be the syntax for int scope
alloy - 合金製ユニバーサルセット
特定の sig のセットがある場合、たとえば、closed_Switches のセットを作成します。次のように open_switches (または閉じられていないすべてのスイッチ) のセットを取得できますか?
合金を使い始めたばかりですが、これはこの問題に取り組む正しい方法ですか。