(def-theorem netstates-exist "forsome(x:[hosts,states],total_q{x,[hosts,states]})" (theory routed-networks) (proof ( (instantiate-existential ("lambda(h:hosts, nil{datagrams})")) (block (script-comment "`instantiate-existential' at (0)") insistent-direct-inference beta-reduce-repeatedly) (block (script-comment "`instantiate-existential' at (1)") sort-definedness simplify) )))
(def-atomic-sort netstates "lambda(n:[hosts -> states], total_q{n,[hosts -> states]})" (theory routed-networks))
(def-constant append%to%netstate "lambda(n:netstates, h:hosts, d:datagrams, lambda(h_1:hosts, if(h_1 = h, append%to%state(n(h_1),d), n(h_1))))" (theory routed-networks))
(def-theorem append_to_netstate-is-total "total_q{append%to%netstate, [netstates, hosts, datagrams -> [hosts -> [nn -> datagrams]]]}" (usages d-r-convergence) (theory routed-networks) (proof ( insistent-direct-inference (unfold-single-defined-constant-globally append%to%netstate) )))
(def-theorem append_to_netstate-is-defined-in-netstates "forall(n:netstates, h:hosts, d:datagrams, #(append%to%netstate(n,h,d),netstates))" (usages d-r-convergence) (theory routed-networks) (proof ( direct-inference (apply-macete-with-minor-premises netstates-defining-axiom_routed-networks) (cut-with-single-formula "#(append%to%netstate(n,h,d),[hosts,states])") (block (script-comment "`cut-with-single-formula' at (0)") beta-reduce-repeatedly insistent-direct-inference (unfold-single-defined-constant-globally append%to%netstate) (raise-conditional (0)) simplify (instantiate-theorem netstates-defining-axiom_routed-networks ("n"))) (block (script-comment "`cut-with-single-formula' at (1)") (unfold-single-defined-constant-globally append%to%netstate) sort-definedness direct-inference (case-split ("xx_0=h")) (block (script-comment "`case-split' at (1)") simplify (apply-macete-with-minor-premises append_to_state-is-defined-in-states)) simplify) )))