巨大数研究 Wiki
Advertisement

「ハンバーガー種の解析」では、次の四つの記事を解析する。

  1. ユーザーブログ:P進大好きbot/お料理巨大数投稿用記事
  2. ユーザーブログ:Nayuta_Ito/2021HB-p進大好きbotさんの「お料理巨大数投稿用記事」をプログラミング言語に翻訳する
  3. ユーザーブログ:P進大好きbot/Nayuta_Itoさんの式神巨大数投稿用記事をプログラミング言語に翻訳する
  4. ユーザーブログ:P進大好きbot/式神巨大数2021投稿用記事

「ハンバーガー種の解析」では、 \( \Omega \! \! \! \Omega \newcommand{\dprod}[1]{\exists #1 \ldotp \,} \newcommand{\Ha}{H} \newcommand{\Pa}{P} \newcommand{\PL}{P _ {L}} \newcommand{\PM}{P _ {M}} \newcommand{\PR}{P _ {R}} \newcommand{\Me}{M} \newcommand{\Pm}{P _ {m}} \) を使う。

オリョウリ亜種[]

「オリョウリ亜種」では、 Special:Redirect/revision/35952 を参照する。

パンズの例としてパンの (] が示されている。しかし、パンの | はパンズの例として示されていない。

表記[]

ここの数式の中では、ハンバーガーを \( \Ha \) と書く。

ここの数式の中では、パティを \( \Pa \) と書く。

ここの数式の中では、 ( を \( \PL \) と書く。

ここの数式の中では、 | を \( \PM \) と書く。

ここの数式の中では、 ] を \( \PR \) と書く。

ここの数式の中では、肉を \( \Me \) と書く。

ここの数式の中では、パティ素材を \( \Pm \) と書く。

ハンバーガーとパティは相互帰納的に定義される。

ハンバーガーは次のように定義される。

  1. \( x \in P \to \PL x \PR \in \Ha \)
  2. \( s \in \Ha \land t \in \Ha \land s _ {0} \PR = s \land \PL t _ {0} = t \to s _ {0} \PM t _ {0} \in \Ha \)

パティは次のように定義される。

  1. \( \Me \in \Pa \)
  2. \( s \in \Ha \land x \in \Pa \to \Me s x \in \Ha \)

パティ素材は次のように定義される。

  1. \( s \in \Ha \to s \in \Pm \)
  2. \( s \in \Ha \land t \in \Ha \to s \Me t \in \Pm \)

解析[]

まず、ハンバーガーのルール 2 は少々厄介であるから、 EBNF を使用して扱いやすい構文を作成する。

(* Burger burger hexirpii *)
hamburger = "(", patty, { "|", patty } "]";
patty     = "肉", { hamburger, "肉" };

これがオリョウリ亜種のハンバーガーとパティの定義と同値になることは、 \( s \in \Ha \to \dprod{s _ 0} \PL s _ 0 \PR = s \) であることから導かれる。

data Hamburger = Hamburger Patty [Patty]
data Patty = Patty [Hamburger]

Haskell で記述すると上記のようになる。

オッドパティは、ハンバーガーを偶数個含むパティである。

イブンパティは、ハンバーガーを奇数個含むパティである。

Advertisement