간단한 재 작성 시스템을위한 합류 증명


14

다음과 같은 용어로 구성된 간단한 언어가 있다고 가정하십시오.

  • true
  • false
  • 경우 기간이다는 이렇게이다t1,t2,t3ift1thent2elset3

이제 다음과 같은 논리적 평가 규칙을 가정하십시오.

iftruethent2elset3t2[E-IfTrue]iffalsethent2elset3t3[E-IfFalse]t1t1ift1thent2elset3ift1thent2elset3[E-If]

다음과 같은 펑키 규칙을 추가한다고 가정합니다.

t2t2ift1thent2elset3ift1thent2elset3[E-IfFunny]

주어진 평가 규칙에 따라이 간단한 언어를 위해 다음을 증명하고자합니다.

정리 : 만약 및 다음이 일부 용어 등이 와 .rsrtusutu

의 구조를 유도하여 이것을 증명하고 있습니다. 여기까지 내 증거가 있습니다. 모두 잘 작동했지만 마지막 사건에 갇혀 있습니다. 의 구조에 대한 유도 가 충분하지 않은 것 같습니다. 아무도 나를 도울 수 있습니까?rr

증명. 유도함으로써 이 취할 수있는 모든 형태를 분리합니다 :rr

  1. r 은 상수이며, 일반적인 형태는 아무 것도 평가하지 않으므로 증명할 것이 없습니다.
  2. r= true이면 else 입니다. (a) 두 파생물 모두 E-IfTrue 규칙으로 수행되었습니다. 이 경우 이므로 증명할 것이 없습니다. (b) 하나의 이탈은 E-IfTrue 규칙으로, 다른 하나는 E- 재미 규칙으로 수행되었습니다. 가 E-IfTrue로 수행 되었다고 가정 하면 다른 경우도 동일하게 입증됩니다. 우리는 이제 입니다. 우리는 또한 true이면 그렇지 않으면 이며 (전제) 가 있음을 알고 있습니다 . 이제 선택 하면 사례가 끝납니다.r2r3s=trss=r2t=r2r3r2r2u=r2
  3. r= false 인 경우 else . 위와 동일하게 입증되었습니다.r2r3
  4. r= 경우 다음 다른 와 참 또는 거짓. (a) 두 가지 모두 E-If 규칙으로 수행되었습니다. 우리는 지금 알고 경우 다음 다른 및r1r2r3r1s=r1r2r3t=r1r2r3r1r1r1r1r1r1r1 및 . 우리는 지금 말로 사건을 결론 경우 다음 다른 하고 알아 차린 그 와 전자의 경우 규정에 의해. (b) 하나는 E-If 규칙에 의해 그리고 하나는 E-Funny 규칙에 의해 도출되었다.r1r1u=r1r2r3sutu

후자의 경우, E-If와 E-Funny에 의한 하나의 파생물이 내가 누락 된 경우입니다 ... 나는 가설을 사용할 수없는 것 같습니다.

도움을 주시면 감사하겠습니다.


@Gilles는 편집을 매우 잘 수행했습니다. 나는 SE의 TeX 엔진이 모든 것을 가능하게했다는 것을 몰랐다 ... :-)
codd

내가 틀렸거나이 연습이 Pierce "Types and Programming Languages"에서 가져 왔습니까?
Fabio F.

@FabioF. 그것은 실제로 Pierce 's Types and Programming Languages ​​책에서 발췌 한 것입니다. 그는 유도를 수행하는 방식 때문에 불분명하다는 증거를 제공합니다. 그래서 구조에 대한 유도를 통해 스스로 증명하려고했습니다. 나는 그것이 책에서 나온 것이라고 언급하려고 생각했지만 오히려 관련이 없다고 생각했습니다. 그러나 잘 알았습니다!
codd

답변:


7

자, r = i f 인 경우를 생각해 봅시다. , s 는 E-If 규칙을 적용하여 도출되었으며 t 는 E-Funny 규칙을 적용하여 도출되었습니다. So s = i fr=ift1thent2elset3st 여기서, t 1t ' (1) t = I Fs=ift1thent2elset3t1t1 여기서 t 2t 2 .t=ift1thent2elset3t2t2

우리가 찾고 있는 u = i fu . s u 는 규칙 E-Funny를따르고 t u 는 규칙 E-If를 따릅니다.u=ift1thent2elset3sutu


나를 이길. 좋은 작업.
Patrick87

어이, 난 정말 너무 멀리보고 있었다 ... 감사합니다!
codd

당신은 그들을 섞 었지 만 는 E-Funny의 뒤를 따릅니다. 아니면 뭔가 잘못보고 있습니까? su
codd

@Jeroen 네 말이 맞아-내가 섞 었어. 지금 수정했습니다.
sepp2k

8

이 최대를보고 싶을 경우 약간의 용어에 도움이 될 수 있습니다 :이 규칙은 재 작성 규칙 , 그들은 형 systems¹와는 아무 상관이 없습니다. 증명하려는 재산을 합류 라고합니다 . 보다 구체적으로, 강력한 합류 : 한 단계에서 용어를 다른 방식으로 줄일 수 있으면 다음 단계에서 다시 수렴 할 수 있습니다. 일반적으로, 합류는 단계 번호와 거기 할 수 있도록 한 다음의 경우 R * t는 다음가 되도록 S * Ut * Ursrtusutu — 용어가 다른 방식으로 축소 될 수있는 경우, 거리가 멀어 지더라도 결국 수렴 될 수 있습니다.

이와 같이 귀납적으로 정의 된 재 작성 규칙의 속성을 입증하는 가장 좋은 방법은 축소 된 용어의 구조가 아니라 감소의 파생 구조를 유도하는 것입니다. 여기서는 규칙이 왼쪽 항의 구조를 따르기 때문에 작동하지만 규칙에 대한 추론은 더 간단합니다. 이 용어로 뛰어 드는 대신, 모든 규칙 쌍을 취하고 어느 용어가 두 용어의 왼쪽이 될 수 있는지 알 수 있습니다. 이 예에서는 결국 같은 경우가 있지만 조금 더 빠릅니다.

문제가 발생하는 경우 한쪽은 "if"부분을 줄이고 다른 쪽은 "then"부분을 줄입니다. (변경하는 두 부분 사이에는 중첩이 없어 에서 [E-IF, t (2) , 그리고 아무런 제약이 없다 [E-IfFunny])에서 t (2) [E-IF] 또는에 t 1 에서 [E-은 IfFunny]. 둘 다 규칙이 적용되는 용어가 그래서 - 이는 형식이어야 난의 Ft1t2t2t1 에서는 다음 순서로 규칙을 적용하도록 선택할 수 있습니다.ifr1thenr2elser3

ifr1thenr2elser3[E-If][E-IfFunny]ifr1thenr2elser3ifr1thenr2elser3[E-IfFunny][E-If]ifr1thenr2elser3

¹ 때때로 유형과 재 작성을 볼 수 있지만 그 핵심은 직교 개념입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.