| Parents |
| gst |
| Constants |
![]() |
GS |
|
InferProp
|
GS |
|
ProgProp
|
GS |
|
DocProp
|
GS |
|
Specification
|
GS |
|
Program
|
GS |
|
Language
|
GS |
|
Document
|
GS |
|
mk_ip
|
GS GS GS GS
|
|
mk_pp
|
GS GS GS
|
|
mk_dp
|
GS GS GS
|
|
mk_spec
|
GS GS GS
|
|
ip_out
|
GS GS
|
|
ip_in
|
GS GS
|
|
ip_prog
|
GS GS
|
|
pp_prog
|
GS GS
|
|
pp_spec
|
GS GS
|
|
dp_doc
|
GS GS
|
|
dp_lang
|
GS GS
|
|
out_lang
|
GS GS
|
|
in_lang
|
GS GS
|
|
TrueDocP
|
GS BOOL
|
|
DocInferP
|
GS BOOL
|
|
SoundProgP
|
GS BOOL
|
| Definitions |
|
Document
Language
Program
Specification
DocProp
ProgProp
InferProp
![]() |
g Document Language = g Document Program = Document g Document Specification = Language g Language DocProp = Language g Document ProgProp = Specification g Program InferProp = Program g Document g Document
|
|
mk_spec
mk_dp
mk_pp
mk_ip
|
mk_spec = $ g mk_dp = $ g mk_pp = $ g mk_ip = ( pr inp out pr g inp g out)
|
|
in_lang
out_lang
dp_lang
dp_doc
pp_spec
pp_prog
ip_prog
ip_in
ip_out
|
in_lang = fst out_lang = snd dp_lang = fst dp_doc = snd pp_spec = fst pp_prog = snd ip_prog = fst ip_in = ( d fst (snd d)) ip_out = ( d snd (snd d))
|
|
TrueDocP
|
dp TrueDocP dp dp g DocProp dp_doc dp g dp_lang dp
|
|
DocInferP
|
ip DocInferP ip ip g InferProp ip_in ip g ip_out ip g ip_prog ip
|
|
SoundProgP
|
pp SoundProgP pp pp g ProgProp ( ind oud TrueDocP (mk_dp (in_lang (pp_spec pp)) ind) DocInferP (mk_ip (pp_prog pp) ind oud) TrueDocP |
| Theorems |
|
id_spec_thm
|
l l g Language SoundProgP ((l g l) g id l)
|
|
mm1_mp_thm
|
in_doc in_lan p out_doc out_lan TrueDocP (mk_dp in_lan in_doc) SoundProgP (mk_pp (mk_spec in_lan out_lan) p) DocInferP (mk_ip p in_doc out_doc) TrueDocP (mk_dp out_lan out_doc)
|
|
mm1_mpc_thm
|
d1 l1 d2 l2 d3 l3 p1 p2 TrueDocP (mk_dp l1 d1) SoundProgP (mk_pp (mk_spec l1 l2) p1) SoundProgP (mk_pp (mk_spec l2 l3) p2) DocInferP (mk_ip p1 d1 d2) DocInferP (mk_ip p2 d2 d3) TrueDocP (mk_dp l3 d3)
|