여기에 "트랙 B"질문이 있습니다. 요약 : 비 결정적 프로그램에 의미를 부여하려고 할 때 가장 먼저 생각하는 것은 비 결정적 분석 만 종료하는 루프에 대한 것을 증명할 수없는 의미론을 초래합니다. 분명히 누군가 가이 상황에서 무엇을 해야할지, 적어도 어렵다는 것을 지적했지만 그것을 찾는 방법을 알지 못합니다 (따라서 "참조 요청"태그).
배경
비결정론으로 언어를 모델링하고 싶습니다. 나는 이것이 Smyth powerdomain으로 그러한 언어를 모델링하는 명백한 (또는 적어도 순진한) 방법이라고 생각하지만 내가 틀렸다면 나를 바로 잡으십시오. 이 언어에서 명령의 의미는 도메인이 상태 의 세트 S
- ⟦ S K I P ⟧ σ = { σ }
⟦ S K I P ⟧ σ= { σ} - ⟦ X : = E ⟧ σ = { σ [ ( ⟦ E ⟧ σ ) / X ] }
⟦ X : = E⟧ σ= { σ[ ( ⟦ E⟧ σ) / x ] } - ⟦ B가 O를 R t ⟧ σ = ⊥
⟦ B O R t ⟧ σ를= ⊥ - ⟦\ mathbf {if} ~ E ~ \ mathbf {then} ~ P ~ \ mathbf {else} ~ Q⟧ \ sigma = ⟦E⟧ \ sigma = \ mathit {true} 인 ⟦ I F E t H E N P E L S E Q ⟧ σ = ⟦ P ⟧ σ
⟦ I F 이자형 t h e n P E L S E Q ⟧ σ = ⟦ P⟧ σ 경우 ⟦ E ⟧ σ = t R U E⟦E⟧σ=true , 그렇지 않으면 ⟦ Q ⟧ σ⟦Q⟧σ - ⟦ P ⊛ Q ⟧ σ = ⊥
⟦P⊛Q⟧σ=⊥ 경우 ⟦ P ⟧ σ = ⊥⟦P⟧σ=⊥ 또는 ⟦ Q ⟧ σ = ⊥⟦Q⟧σ=⊥ 달리 ⟦ P ⟧ σ ∪ ⟦ Q ⟧ σ⟦P⟧σ∪⟦Q⟧σ - ⟦ P ; Q ⟧ σ = ⊥ ⟦ P ⟧ σ = ⊥ ⟦ Q ⟧ τ = ⊥ τ ∈ ⟦ P ⟧ σ ⋃ τ ∈ ⟦ P ⟧ σ ⟦ Q ⟧ τ
⟦P;Q⟧σ=⊥ 경우 또는 일부 달리⟦P⟧σ=⊥ ⟦Q⟧τ=⊥ τ∈⟦P⟧σ ⋃τ∈⟦P⟧σ⟦Q⟧τ
방향성 완전한 부분 위해 거기 여기서 임의 대한 와 두 경우 및 적절히 설정되어 이고 함수 를 에서 점으로 확장 할 수 있습니다 . if 모든 및 은 모든 상태를 매핑하는 함수입니다 .⊑ ⊥ ⊑ S ′ S ′ ∈ P ( S ) ⊥ S 1 ⊑ S 2 S 1 S 2 S 1 ⊇ S 2 f S P ( S ) ⊥ f 1 ⊑ f 2 f 1 ( σ ) ⊑ f 2 ( σ ) σ f ⊥ ⊥
루프의 의미는 는 체인의 최소 상한입니다 , 여기서 이면 이고 , 그렇지 않으면 경우 또는 일부 달리 . (이 정의는 방금 정의한 가 Scott 연속 이라고 가정 하지만, 제쳐두는 것이 안전하다고 생각합니다.)⟦ w H 나 L E E D O P ⟧ σ F ⊥ ⊑ F ( F ⊥ ) ⊑ F ( F ( F ⊥ ) ) ⊑ ... F ( g ) ( σ ) = { σ } ⟦ E ⟧ ( σ ) = F L은 s의 전자 ⊥ ⟦ P ⟧ σ = ⊥
질문
이 프로그램을 고려하십시오 :
x : = 0 ; b : = t r u e ; w h i l e b d o
x : = x + 2 ;
b : = f a l s e ⊛ b : = t r u e
직관적으로, 이것은 임의의 양의 짝수를 반환하거나 종료되지 않는 루프이며, 가장 약한 자유 조건을 사용하여이 루프에 대해 증명할 수있는 것과 일치합니다 ( 을 표시하는 것이 가능합니다 은 루프입니다) 불변). 그러나 루프가 종료되지 않는 기능을 가지고 있기 때문에 (우리는 항상 오른쪽 분기를 수행하는 프로그램으로 비 결정적 선택을 세분화 할 수 있음) 초기 상태에서이 프로그램의 의미는 입니다. (비공식적으로는 : 가 false 인 상태를 로 , 가 true 인 상태 를 로 매핑하는 함수 는 루프를 정의하는 데 사용되는 의 고정 점입니다 .)∃n.x=2n
이것은 내가 제안한 순진한 의미론이 프로그램에 대해 추론 할 수있는 방식과 일치하지 않음을 의미합니다. 나는 의미를 비난하지만 그것들을 고치는 법은 없다.