| |
| | smtp |
 | | (def-constant limited%smtp%connections "lambda(senders,receivers:sets[addresses], forall(s_1:states,s_2:filtered%states,f:[nn -> nn], a_1,a_2:addresses,p_1,p_2:ports, smtp%connection(s_1,s_2,f,a_1,a_2,p_1,p_2) and senders subseteq internal and receivers subseteq internal implies (a_1 in external implies a_2 in receivers) and (a_2 in external implies a_1 in senders)))" (theory single-filter-theory)) |
 | | (def-constant smtp%filter%specification "lambda(senders,receivers:sets[addresses], forall(d:datagrams,b:directions,s:filtered%states, if(smtp%filter%condition%1(d,b,senders,receivers), filter(d,b,s), smtp%filter%condition%2(d,b,senders,receivers), filter(d,b,s), smtp%filter%condition%3(d,b,senders,receivers), filter(d,b,s), smtp%filter%condition%4(d,b,senders,receivers), filter(d,b,s), not(filter(d,b,s)))))" (theory single-filter-theory)) |
 | | (def-theorem smtp-filter-correctness-3 "forall(senders,receivers:sets[addresses], smtp%filter%specification(senders,receivers) and receivers subseteq internal implies limited%externally%initiated%tcp%connections(receivers))" (theory single-filter-theory) (proof (unfold-defined-constants direct-and-antecedent-inference-strategy (instantiate-universal-antecedent "with(p:prop, forall(d:datagrams,b:directions,s:filtered%states,p));" ("d" "inbound" "s")) (incorporate-antecedent "with(p:prop,if(p, p, p));") simplify (unfold-single-defined-constant-globally smtp%filter%condition%1) (unfold-single-defined-constant-globally smtp%filter%condition%2) (unfold-single-defined-constant-globally smtp%filter%condition%3) (unfold-single-defined-constant-globally smtp%filter%condition%4) (unfold-single-defined-constant-globally filter%condition) direct-and-antecedent-inference-strategy (weaken (9 7 5 4 3 2 0)) (incorporate-antecedent "with(d:datagrams,receivers:sets[addresses], destination%address(d) in internal diff receivers);") simplify-insistently))) |
| imps.mcmaster.ca /theories/networks/smtp.html (225 words) |
|