(def-language one-route-network-language
    (embedded-language filtered-networks)
    (constants
      (addr_a addresses)
      (addr_b addresses)))


(def-theory one-route-networks 
    (language one-route-network-language)
    (component-theories filtered-networks)
    (axioms
      (addr_a-is-an-address-of-an-interface
        "#(addr%to%iface(addr_a))")
      (addr_b-is-an-address-of-an-interface
        "#(addr%to%iface(addr_b))")
      (restriction-of-datagrams
        "forall(d:datagrams,
              (source%address(d) = addr_a and destination%address(d) = addr_b)
                or
              (source%address(d) = addr_b and destination%address(d) = addr_a))")))


(def-constant iface_a 
    "addr%to%iface(addr_a)"
    (theory one-route-networks))


(def-constant iface_b 
    "addr%to%iface(addr_b)"
    (theory one-route-networks))