atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
ページ検索 メニュー
TLA+メモ@ウィキ
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
TLA+メモ@ウィキ
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
TLA+メモ@ウィキ
ページ検索 メニュー
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • TLA+メモ@ウィキ
  • うそつき牛(レイトン教授)

TLA+メモ@ウィキ

うそつき牛(レイトン教授)

最終更新:2023年05月28日 22:42

tlaplus

- view
メンバー限定 登録/ログイン

うそつき牛 (レイトン教授)


問題概要


5頭の牛A,B,C,D,Eがいる。2頭はトンホー種(本当のことしか言わない)、3頭はソーウ種(ウソしか言わない)である。
次の会話がなされている場合、ソーウ種はどれか。

  • A「Dはソーウ種だ」
  • B「Cはトンホー種ではない」
  • C「Aはソーウ種ではない」
  • D「Eはソーウ種だ」
  • E「Bはトンホー種ではない」

モデル


------------------------------- MODULE layton -------------------------------
EXTENDS Naturals, Sequences, FiniteSets, TLC
 
(*-- Constant Declaration --*)
(* 牛の種類は、トンホー種かソーウ種のどちらかである *)
CONSTANT Tonho, Sou
 
(*-- Definition --*)
(* タプルの要素のうち特定の値のものをカウントする *)
Count(t,n) == LET S == {i \in DOMAIN t : t[i] = n} IN Cardinality(S)
 
 
 
(*--algorithm layton {
 (* グローバル変数宣言 *)
    variables type = [i \in 1..5 |-> Tonho],    (* 各牛の種類 *)
    pattern \in [1..5 -> {Tonho,Sou}];    (* 全パターン *)
 
 (* define(演算子)定義 *)
 define
 {
 (* 牛の種類に関する制約 *)
CowSpec == 
    /\ (type[1] = Tonho) <=> (type[4] = Sou)    (* Aがトンホー種の場合、Dはソーウ種である *)
    /\ (type[2] = Tonho) <=> (type[3] /= Tonho) (* Bがトンホー種の場合、Cはトンホー種でない *)
    /\ (type[3] = Tonho) <=> (type[1] /= Sou)  (* Cがトンホー種の場合、Aはソーウ種でない *)
    /\ (type[4] = Tonho) <=> (type[5] = Sou)   (* Dがトンホー種の場合、Eはソーウ種である *)
    /\ (type[5] = Tonho) <=> (type[2] /= Tonho)(* Eがトンホー種の場合、Bはトンホー種でない *)
    /\ Count(type, Tonho) = 2 (* トンホー種は2頭 *)
};
 
 (* アルゴリズム本体、もしくはプロセス宣言 *)
 {
    type := pattern;
 }
}*)
\* BEGIN TRANSLATION
VARIABLES type, pattern, pc
 
(* define statement *)
CowSpec ==
    /\ (type[1] = Tonho) <=> (type[4] = Sou)
    /\ (type[2] = Tonho) <=> (type[3] /= Tonho)
    /\ (type[3] = Tonho) <=> (type[1] /= Sou)
    /\ (type[4] = Tonho) <=> (type[5] = Sou)
    /\ (type[5] = Tonho) <=> (type[2] /= Tonho)
    /\ Count(type, Tonho) = 2
 
 
vars == << type, pattern, pc >>
 
Init == (* Global variables *)
        /\ type = [i \in 1..5 |-> Tonho]
        /\ pattern \in [1..5 -> {Tonho,Sou}]
        /\ pc = "Lbl_1"
 
Lbl_1 == /\ pc = "Lbl_1"
         /\ type' = pattern
         /\ pc' = "Done"
         /\ UNCHANGED pattern
 
(* Allow infinite stuttering to prevent deadlock on termination. *)
Terminating == pc = "Done" /\ UNCHANGED vars
 
Next == Lbl_1
           \/ Terminating
 
Spec == Init /\ [][Next]_vars
 
Termination == <>(pc = "Done")
 
\* END TRANSLATION 
(*-- Model Checking --*)
 
=============================================================================
 

解説


以下の記事を参考にした。

Alloyでパズル (1) ウソつき問題

検証する際には不変条件に「~CowSpec」(CowSpecの否定)を指定する。CowSpecがTrueとなると反例として結果が表示される。

ポイント1


変数を定義する際に\inで定義すると集合内の値を順番に変数に設定して検証する。
ここでは関数の集合"[1..5 -> {Tonho,Sou}]"で牛の全組み合わせを生成している。
pattern \in [1..5 -> {Tonho,Sou}]; (* 全パターン *)


問題の解答

  • 【A】と【C】と【E】
「うそつき牛(レイトン教授)」をウィキ内検索
LINE
シェア
Tweet

[Amazon商品]


TLA+メモ@ウィキ
記事メニュー

メニュー

  • トップページ
  • TLA+とは
  • ボイラープレート
  • 型 (Type)
  • 文法 (Syntax)
  • PlusCal構文
  • 時相論理 (temporal logic)
  • TLA+ TooolBox
  • よく使う表現
  • 例題


リンク

  • The TLA+ Home Page
  • TLA+ Foundation
  • TLA+ GitHub
  • TLA+ Video Course (YouTube)
  • Learn TLA+
  • @wiki
  • @wikiご利用ガイド


アクセス

今日: -
昨日: -
合計: -


ここを編集
記事メニュー2

人気のページ

  • TLA+とは
  • PlusCal構文
  • 食事する哲学者の問題
  • トップページ
  • 型 (Type)
  • 例題
  • 文法 (Syntax)
  • 時相論理 (temporal logic)
  • うそつき牛(レイトン教授)
  • ボイラープレート

更新履歴


編集履歴

取得中です。

ここを編集
最近更新されたページ
  • 58日前

    TLA+とは
  • 58日前

    メニュー
  • 434日前

    PlusCal構文
  • 618日前

    型 (Type)
  • 619日前

    時相論理 (temporal logic)
  • 636日前

    文法 (Syntax)
  • 774日前

    川渡り問題
  • 775日前

    例題
  • 779日前

    うそつき牛(レイトン教授)
  • 779日前

    食事する哲学者の問題
もっと見る
最近更新されたページ
  • 58日前

    TLA+とは
  • 58日前

    メニュー
  • 434日前

    PlusCal構文
  • 618日前

    型 (Type)
  • 619日前

    時相論理 (temporal logic)
  • 636日前

    文法 (Syntax)
  • 774日前

    川渡り問題
  • 775日前

    例題
  • 779日前

    うそつき牛(レイトン教授)
  • 779日前

    食事する哲学者の問題
もっと見る
ウィキ募集バナー
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. MadTown GTA (Beta) まとめウィキ
  2. AviUtl2のWiki
  3. R.E.P.O. 日本語解説Wiki
  4. シュガードール情報まとめウィキ
  5. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  6. ソードランページ @ 非公式wiki
  7. シミュグラ2Wiki(Simulation Of Grand2)GTARP
  8. ドラゴンボール Sparking! ZERO 攻略Wiki
  9. 星飼いの詩@ ウィキ
  10. ヒカマーWiki
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. 初音ミク Wiki
  5. 検索してはいけない言葉 @ ウィキ
  6. 発車メロディーwiki
  7. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  8. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
  9. オレカバトル アプリ版 @ ウィキ
  10. MadTown GTA (Beta) まとめウィキ
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 参加者一覧 - ストグラ まとめ @ウィキ
  2. モンスター一覧_第2章 - モンスター烈伝オレカバトル2@wiki
  3. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  4. 高崎線 - 発車メロディーwiki
  5. 近藤旬子 - 馬主データベース@Wiki
  6. 地獄のデザイナーさん1 - 【トレパク】 きりつき 検証まとめwiki 【地獄のデザイナーさん】
  7. 召喚 - PATAPON(パタポン) wiki
  8. 細田守 - アニヲタWiki(仮)
  9. ステージ攻略 - パタポン2 ドンチャカ♪@うぃき
  10. 鬼レンチャン(レベル順) - 鬼レンチャンWiki
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.