タグ付けされた質問 「term-rewriting」

2
シンプルな書き換えシステムの合流性証明
次の用語で構成される単純な言語があるとします。 truetrue\mathtt{true} falsefalse\mathtt{false} 場合用語では、次いで、そうでi ft1,t2,t3t1,t2,t3t_1,t_2,t_3ift1thent2elset3ift1thent2elset3\mathtt{if}\: t_1 \:\mathtt{then}\: t_2 \:\mathtt{else}\: t_3 ここで、次の論理評価ルールを想定します。 iftruethent2elset3→t2[E-IfTrue]iffalsethent2elset3→t3[E-IfFalse]t1→t′1ift1thent2elset3→ift′1thent2elset3[E-If]iftruethent2elset3→t2[E-IfTrue]iffalsethent2elset3→t3[E-IfFalse]t1→t1′ift1thent2elset3→ift1′thent2elset3[E-If] \begin{gather*} \dfrac{} {\mathtt{if}\: \mathtt{true} \:\mathtt{then}\: t_2 \:\mathtt{else}\: t_3 \to t_2} \text{[E-IfTrue]} \quad \dfrac{} {\mathtt{if}\: \mathtt{false} \:\mathtt{then}\: t_2 \:\mathtt{else}\: t_3 \to t_3} \text{[E-IfFalse]} \\ \dfrac{t_1 \to t_1'} {\mathtt{if}\: t_1 \:\mathtt{then}\: t_2 \:\mathtt{else}\: t_3 \to \mathtt{if}\: t_1' \:\mathtt{then}\: t_2 \:\mathtt{else}\: …

3
用語の書き換えが必要な理由
私は少しグーグルをやって、少し短くなりました。 計算科学者やプログラマーが用語の書き換えや用語のグラフの書き換えを研究する主な理由は何でしょうか。 私の知る限り、これは関数型プログラムと(命令型)プログラム制御に関する基本的な推論に役立ちます。どうやら、それは論理学者や建設的な抽象代数を研究する人々にとって非常に興味深いトピックです。 どんな助けでも大歓迎です!

1
この書き換えシステムで文字列を派生させることは可能ですか?
書き換えシステムは、形式の一連のルール です。そのルールを文字列に適用すると、部分文字列が部分文字列、またはその逆に置き換えられます。W A 、W BA ↔ BA↔BA \leftrightarrow BwwwAAAwwwBBB 始まる文字列が与えられ私たちが導き出すことができ以下のルールとシステムに:B A A BAAABBAAABBAAABBBAABBAABBAAB A↔BAA↔BAA \leftrightarrow BA BABA↔AABBBABA↔AABBBABA \leftrightarrow AABB AAA↔ABAAA↔ABAAA \leftrightarrow AB BA↔ABBA↔ABBA \leftrightarrow AB そのための一般的なアルゴリズムはありますか?

2
ベータ拡張の合流点
してみましょう→β→β\to_\betaなるββ\betaで-reduction λλ\lambda -calculus。ββ\beta展開←β←β\leftarrow_\betaをt ′ ← βで定義t』←βt⟺t →βt』t′←βt⟺t→βt′t'\leftarrow_\beta t \iff t\to_\beta t'。 ある←β←β\leftarrow_\beta合流?言い換えれば、我々はすべてのためのことを持っていますl 、d、rl,d,rl,d,r、場合l →∗βd←∗βrl→β∗d←β∗rl \to_\beta^* d\leftarrow_\beta^* r、そこに存在するあなたuuようにl ←∗βu →∗βrl←β∗u→β∗rl\leftarrow_\beta^* u \to_\beta^* r? キーワード:上向き合流、逆さCRプロパティ 現地合流(すなわち場合:私は弱い性質を調べることで開始l →βd←βrl→βd←βrl \to_\beta d\leftarrow_\beta r、そしてl ←∗βu →∗βrl←β∗u→β∗rl\leftarrow_\beta^* u \to_\beta^* r)。これが真実であったとしても、ββ\beta展開が終了しないので合流を意味するわけではありませんが、障害を理解するのに役立つと思いました。 (トップ)の両方の減少がトップレベルである場合には、仮説になる(λ X1。b1)a1→ b1[ a1/ x1] = b2[ a2/ x2] ← (λ X2。b2)a2(λx1.b1)a1→b1[a1/x1]=b2[a2/x2]←(λx2.b2)a2(\lambda x_1.b_1)a_1\rightarrow b_1[a_1/x_1]=b_2[a_2/x_2]\leftarrow (\lambda x_2.b_2)a_2。最大αα\alpha -renamingを、私たちはその想定することができバツ1≠ …

1
ラムダ計算におけるニュートラル/ノーマル形式の直感的な説明
副次表現としてベータredexを含まない通常の用語と他の用語を区別することは可能です data WithBound a = Var | Other a data Normal a = Neutral (Neutral a) | Abstract (Normal (WithBound a)) data Neutral a = Variable a | Apply (Neutral a) (Normal a) このプロパティが保持される理由について、直感的な説明はありますか?十分に長く見た後、どうやら完全に自明であるかもしれませんが、現時点ではすぐにはわかりません。

2
行列乗算プログラムの入れ子ループの不変式
Hoareロジックを使用して2つの行列を乗算するためのプログラムの正確性を証明することについて、卒業論文を作成しています。これを行うには、このプログラムの入れ子ループの不変式を生成する必要があります。 for i = 1:n for j = 1:n for k = 1:n C(i,j) = A(i,k)*B(k,j) + C(i,j); end end end 私は最初に内部ループの不変式を見つけようとしましたが、今までは本当のものを見つけることができません。上記のプログラムの不変式を見つけるのを手伝ってくれる人はいますか?
7 algorithms  loop-invariants  correctness-proof  formal-languages  regular-languages  pumping-lemma  logic  logic  programming-languages  lambda-calculus  term-rewriting  operational-semantics  complexity-theory  time-complexity  computability  proof-techniques  reductions  digital-preservation  distributed-systems  storage  algorithms  dynamic-programming  check-my-algorithm  reference-request  cryptography  quantum-computing  formal-languages  regular-languages  context-free  formal-grammars  algorithms  graphs  network-flow  algorithms  data-structures  randomized-algorithms  lists  computability  proof-techniques  undecidability  terminology  distributed-systems  parallel-computing  artificial-intelligence  heuristics  search-problem  algorithms  computational-geometry  algorithm-analysis  asymptotics  recurrence-relation  mathematical-analysis  master-theorem  algorithms  algorithm-analysis  runtime-analysis  computability  reductions  turing-machines  formal-languages  context-free 

1
IFの削減ルール?
私はSimon Peyton Jonesの「関数型プログラミング言語の実装」を通じて作業しており、20ページで次のように表示されます。 IF TRUE((λp.p)3)↔IF TRUE 3(β赤あたり)(1) ↔(λx.IFTRUE 3 x)(η赤あたり)(2) ↔(λx.3)(3) ステップ1から2は、η変換として説明されます。しかし、2から3までは、「最後のステップはIFの削減ルールである」と述べています。この削減ルールが何であるかわかりません。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.