Misplaced Pages

Logical relations

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

Logical relations are a proof method employed in programming language semantics to show that two denotational semantics are equivalent.

To describe the process, let us denote the two semantics by [ [ ] ] i {\displaystyle \!]_{i}} , where i { 1 , 2 } {\displaystyle i\in \{1,2\}} . For each type A {\displaystyle A} , there is a particular associated relation {\displaystyle \sim } between [ [ A ] ] 1 {\displaystyle \!]_{1}} and [ [ A ] ] 2 {\displaystyle \!]_{2}} . This relation is defined such that for each program phrase M {\displaystyle M} , the two denotations are related: [ [ M ] ] 1 [ [ M ] ] 2 {\displaystyle \!]_{1}\sim \!]_{2}} . Another property of this relation is that related denotations for ground types are equivalent in some sense, usually equal. The conclusion is then that both denotations exhibit equivalent behavior on ground terms, hence are equivalent.

References

https://www.cs.uoregon.edu/research/summerschool/summer16/notes/AhmedLR.pdf

https://www.cs.uoregon.edu/research/summerschool/summer13/lectures/ahmed-1.pdf

Stub icon

This formal methods-related article is a stub. You can help Misplaced Pages by expanding it.

Categories: