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)
  • 例題
  • うそつき牛(レイトン教授)
  • ボイラープレート

更新履歴


編集履歴

取得中です。

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

    TLA+とは
  • 178日前

    メニュー
  • 553日前

    PlusCal構文
  • 737日前

    型 (Type)
  • 739日前

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

    文法 (Syntax)
  • 894日前

    川渡り問題
  • 895日前

    例題
  • 899日前

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

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

    TLA+とは
  • 178日前

    メニュー
  • 553日前

    PlusCal構文
  • 737日前

    型 (Type)
  • 739日前

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

    文法 (Syntax)
  • 894日前

    川渡り問題
  • 895日前

    例題
  • 899日前

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

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

急上昇中のWikiランキングです。今注目を集めている話題をチェックしてみよう!

  1. 遊戯王DSNTナイトメアトラバドール攻略Wiki@わかな
  2. デジタルモンスター まとめ@ ウィキ
  3. Last Z: Survival Shooter @ ウィキ
  4. GUNDAM WAR Wiki
  5. ホワイトハッカー研究所
  6. オバマス検証@wiki
  7. アニヲタWiki(仮)
  8. とある魔術の禁書目録 Index
  9. MADTOWNGTAまとめwiki
  10. beatmania IIDX SP攻略 @ wiki
もっと見る
人気Wikiランキング

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

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

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

  1. フォートナイト攻略Wiki
  2. MADTOWNGTAまとめwiki
  3. MadTown GTA (Beta) まとめウィキ
  4. 首都圏駅メロwiki
  5. Last Z: Survival Shooter @ ウィキ
  6. まどドラ攻略wiki
  7. 駅のスピーカーwiki
  8. 漢字でGO 問題集 @wiki
  9. ちいぽけ攻略
  10. 魔法少女ノ魔女裁判 攻略・考察Wiki
もっと見る
全体ページランキング

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

  1. 【移転】Miss AV 見れない Missav.wsが見れない?!MissAV新URLはどこ?閉鎖・終了してない?missav.ai元気玉って何? - ホワイトハッカー研究所
  2. ブラック・マジシャン・ガール - 遊戯王DSNTナイトメアトラバドール攻略Wiki@わかな
  3. 真崎杏子 - 遊戯王DSNTナイトメアトラバドール攻略Wiki@わかな
  4. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  5. ブラック・マジシャン・ガール - アニヲタWiki(仮)
  6. ゴジュウユニコーン/一河角乃 - アニヲタWiki(仮)
  7. 参加者一覧 - ストグラ まとめ @ウィキ
  8. 参加者一覧 - MADTOWNGTAまとめwiki
  9. Pokémon LEGENDS Z-A - アニヲタWiki(仮)
  10. 辻 伸弘(NTTデータ先端技術株式会社) - IT人材像 @ ウィキ
もっと見る

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

2019 AtWiki, Inc.