US20050080603A1 - Ambient calculus-based modal logic model checking - Google Patents

Ambient calculus-based modal logic model checking Download PDF

Info

Publication number
US20050080603A1
US20050080603A1 US10/915,645 US91564504A US2005080603A1 US 20050080603 A1 US20050080603 A1 US 20050080603A1 US 91564504 A US91564504 A US 91564504A US 2005080603 A1 US2005080603 A1 US 2005080603A1
Authority
US
United States
Prior art keywords
formula
ambient
calculus
check
satisfies
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US10/915,645
Inventor
Luca Cardelli
Andrew Gordon
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Priority to US10/915,645 priority Critical patent/US20050080603A1/en
Assigned to MICROSOFT CORPORATION reassignment MICROSOFT CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CARDELLI, LUCA, GORDON, ANDREW D.
Publication of US20050080603A1 publication Critical patent/US20050080603A1/en
Assigned to MICROSOFT TECHNOLOGY LICENSING, LLC reassignment MICROSOFT TECHNOLOGY LICENSING, LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MICROSOFT CORPORATION
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability

Definitions

  • This invention relates generally to ambient calculus-based modal logics, and more specifically to model checking for such ambient calculus-based modal logics.
  • a computer program which may be made up of one or more executable processes, or threads, may be mobile. For example, a thread of the program may move from computer to computer over the Internet. It may be executed in a distributed fashion over many computers, or a different instance of the thread may be run on each of many computers.
  • a thread may be unstable, such that having it be run on a particular computer may cause the computer to crash. More so, the thread may be malicious, such as part of a virus program, such that its purpose is to compromise the computers it moves to.
  • Mobility requires more than the traditional notion of authorization to run or to access information in certain domains: it involves the authorization to enter or exit certain domains.
  • an agent can migrate from any point A to any point B on the Internet. Rather an agent must first exit its administrative domain (obtaining permission to do so), enter someone else's administrative domain (again, obtaining permission to do so) and then enter a protected area of some machine where it is allowed to run (after obtaining permission to do so).
  • Access to information is controlled at many levels, thus multiple levels of authorization may be involved. Among these levels we have: local computer, local area network, regional area network, wide-area intranet and internet. Mobile programs should be equipped to navigate this hierarchy of administrative domain, at every step obtaining authorization to move further. Laptops should be authorized to access resources depending on their location in the administrative hierarchy.
  • a process or thread resides within a container referred to as an ambient.
  • the ambient includes one or more processes or threads, as well as any data, etc., that move with the processes or threads.
  • An ambient that can move is referred to as a mobile ambient.
  • the ambient can be any type of container: a software container such as a particular part of an operating system, for example, as well as a hardware container, such as a particular computer or peripheral device.
  • an ambient has the following main characteristics.
  • an ambient is a bounded placed where computation happens.
  • the interesting property here is the existence of a boundary around an ambient.
  • Examples of ambients include: a web page (bounded by a file), a virtual address space (bounded by an addressing range), a Unix file system (bounded within a physical volume), a single data object (bounded by “self”) and a laptop (bounded by its case and data ports).
  • Non-examples are: threads (the boundary of what is “reachable” is difficult to determine) and logically related collections of objects.
  • an ambient is something that can be nested within other ambients. For example, to move a running application from work to home, the application must be removed from an enclosing (work) ambient and inserted in a different enclosing (home) ambient.
  • a laptop may need a removal pass to leave a workplace, and a government pass to leave or enter a country.
  • an ambient is something that can be moved as a whole. If a laptop is connected to a different network, all the address spaces and file systems within it move accordingly and automatically. If an agent is moved from one computer to another, its local data should move accordingly and automatically.
  • a computer-implemented method receives a process, which is also referred to as a thread or agent in varying embodiments.
  • the method analyzes the process against a formula using a predetermined modal logic based on ambient calculus.
  • the formula for example, can represent a model to be checked, a policy to be verified, such as a security policy, etc.
  • the method finally outputs whether the process satisfies the formula or not.
  • analysis of the process against the formula is conducted in a recursive manner.
  • the process is normalized to determine whether the process comprises only a single element.
  • the process is partitioned to determine whether each component of the process satisfies the formula.
  • a plurality of names of the process is determined, and it is verified that a name exists for the formula that is unequal to any of this plurality of names.
  • Each sub-location of the process is analyzed against the formula.
  • the spatial reach of the process is also analyzed against the formula.
  • Embodiments of the invention provide for advantages over the prior art.
  • a policy such as a security or mobility policy, expressed in terms of a formula according to the modal logic can be verified in a formal manner.
  • the logic can be used to describe a policy as how an applet can move around among different containers, or ambients.
  • a process can then be matched, or analyzed, against this formal description of the policy.
  • the policy can be intricate, stating, for example, how a process can run on a specific machine, in detail.
  • Embodiments of the invention include computer-implemented methods, computer-readable media, and computerized systems of varying scope. Still other embodiments, advantages and aspects of the invention will become apparent by reading the following detailed description, and by reference to the drawings.
  • FIG. 1 illustrates an exemplary operating environment in accordance with an aspect of the invention.
  • FIG. 2 illustrates an exemplary mobile computing environment in accordance with an aspect of the invention.
  • FIG. 3 illustrates an exemplary method according to an aspect of the invention.
  • FIGS. 4-5 illustrate example situations of mobile ambients that are utilized in conjunction with modal logic of varying aspects of the invention.
  • the detailed description is organized as follows.
  • the first section the introduction, provides guidelines as to how to interpret the other sections of the detailed description.
  • the second section describes an operating environment in context with which embodiments of the invention can be practiced.
  • the third section provides a description of a mobile computing environment, which also gives guidance as to the context in which embodiments of the invention can be practiced.
  • the fourth section describes modal logics, in accordance with which embodiments of the invention can be practiced.
  • This fourth section includes various sub-sections, each of which detail different aspects of such modal logics.
  • the fifth section highlights some examples of processes and formulas in the context of such modal logics.
  • the sixth section presents methods according to embodiments of the invention, which rely on the modal logics of the fourth section. The methods relate generally to analyzing processes against formulas in the context of the modal logics.
  • FIG. 1 a diagram of the hardware and operating environment in conjunction with which embodiments of the invention may be practiced is shown.
  • the description of FIG. 1 is intended to provide a brief, general description of suitable computer hardware and a suitable computing environment in conjunction with which the invention may be implemented.
  • the invention is described in the general context of computer-executable instructions, such as program modules, being executed by a computer, such as a personal computer.
  • program modules include routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types.
  • the invention may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PC's, minicomputers, mainframe computers, and the like.
  • the invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network.
  • program modules may be located in both local and remote memory storage devices.
  • the exemplary hardware and operating environment of FIG. 1 for implementing the invention includes a general purpose computing device in the form of a computer 20 , including a processing unit 21 , a system memory 22 , and a system bus 23 that operatively couples various system components include the system memory to the processing unit 21 .
  • a processing unit 21 There may be only one or there may be more than one processing unit 21 , such that the processor of computer 20 comprises a single central-processing unit (CPU), or a plurality of processing units, commonly referred to as a parallel processing environment.
  • the computer 20 may be a conventional computer, a distributed computer, or any other type of computer; the invention is not so limited.
  • the system bus 23 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures.
  • the system memory may also be referred to as simply the memory, and includes read only memory (ROM) 24 and random access memory (RAM) 25 .
  • ROM read only memory
  • RAM random access memory
  • a basic input/output system (BIOS) 26 containing the basic routines that help to transfer information between elements within the computer 20 , such as during start-up, is stored in ROM 24 .
  • the computer 20 further includes a hard disk drive 27 for reading from and writing to a hard disk, not shown, a magnetic disk drive 28 for reading from or writing to a removable magnetic disk 29 , and an optical disk drive 30 for reading from or writing to a removable optical disk 31 such as a CD ROM or other optical media.
  • a hard disk drive 27 for reading from and writing to a hard disk, not shown
  • a magnetic disk drive 28 for reading from or writing to a removable magnetic disk 29
  • an optical disk drive 30 for reading from or writing to a removable optical disk 31 such as a CD ROM or other optical media.
  • the hard disk drive 27 , magnetic disk drive 28 , and optical disk drive 30 are connected to the system bus 23 by a hard disk drive interface 32 , a magnetic disk drive interface 33 , and an optical disk drive interface 34 , respectively.
  • the drives and their associated computer-readable media provide nonvolatile storage of computer-readable instructions, data structures, program modules and other data for the computer 20 . It should be appreciated by those skilled in the art that any type of computer-readable media which can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, random access memories (RAMs), read only memories (ROMs), and the like, may be used in the exemplary operating environment.
  • a number of program modules may be stored on the hard disk, magnetic disk 29 , optical disk 31 , ROM 24 , or RAM 25 , including an operating system 35 , one or more application programs 36 , other program modules 37 , and program data 38 .
  • a user may enter commands and information into the personal computer 20 through input devices such as a keyboard 40 and pointing device 42 .
  • Other input devices may include a microphone, joystick, game pad, satellite dish, scanner, or the like.
  • These and other input devices are often connected to the processing unit 21 through a serial port interface 46 that is coupled to the system bus, but may be connected by other interfaces, such as a parallel port, game port, or a universal serial bus (USB).
  • a monitor 47 or other type of display device is also connected to the system bus 23 via an interface, such as a video adapter 48 .
  • computers typically include other peripheral output devices (not shown), such as speakers and printers.
  • the computer 20 may operate in a networked environment using logical connections to one or more remote computers, such as remote computer 49 . These logical connections are achieved by a communication device coupled to or a part of the computer 20 ; the invention is not limited to a particular type of communications device.
  • the remote computer 49 may be another computer, a server, a router, a network PC, a client, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 20 , although only a memory storage device 50 has been illustrated in FIG. 1 .
  • the logical connections depicted in FIG. 1 include a local-area network (LAN) 51 and a wide-area network (WAN) 52 .
  • LAN local-area network
  • WAN wide-area network
  • Such networking environments are commonplace in office networks, enterprise-wide computer networks, intranets and the Internet, which are all types of networks.
  • the computer 20 When used in a LAN-networking environment, the computer 20 is connected to the local network 51 through a network interface or adapter 53 , which is one type of communications device.
  • the computer 20 When used in a WAN-networking environment, the computer 20 typically includes a modem 54 , a type of communications device, or any other type of communications device for establishing communications over the wide area network 52 , such as the Internet.
  • the modem 54 which may be internal or external, is connected to the system bus 23 via the serial port interface 46 .
  • program modules depicted relative to the personal computer 20 may be stored in the remote memory storage device. It is appreciated that the network connections shown are exemplary and other means of and communications devices for establishing a communications link between the computers may be used.
  • an example mobile computing environment in conjunction with which embodiments of the invention can be practiced. That is, an example mobile computing environment, made up of ambients (containers) and processes (threads), is presented. Modal logics can then be used to represent these ambients and processes, as well as describe configurations of multiple such ambients and processes, and policies and formulas against which specific ambients and processes can be applied to determine if they satisfy the policies and formulas. That is, model checking as described herein can be used in accordance with such modal logics.
  • the environment 200 specifically includes ambients, or containers, 202 , 204 and 206 .
  • the ambient 202 resides within the ambient 204 .
  • the ambient 202 is named a; the ambient 204 is named b; and, the ambient 206 is named c.
  • a process P resides within the ambient 204
  • a process Q resides within the ambient 202
  • processes R and S reside within the ambient 206 .
  • each ambient, or container can be a software or a hardware container.
  • a software container may be a particular area defined by an operating system. Examples include stacks, heaps, sand boxes, as the latter term is referred to in the context of the Java programming language, etc.
  • a hardware container may be a particular computer, such as a client or a server computer, as well as a particular computer peripheral. An example of a computer has been described in the preceding section of the detailed description.
  • an ambient as used herein has the following properties:
  • the logic of embodiments of the invention pertains to a mobile computing environment.
  • the ambients of FIG. 2 are mobile.
  • the ambient 202 is moving out of the ambient 204 .
  • Each of the ambients and their resident processes are also representable in the logic of embodiments of the invention, which is described in the next section of the detailed description.
  • modal logics based on ambient calculus, and providing for spatial relationships among processes of containers are presented.
  • the logic makes assertions about the containment and contiguity of containers.
  • Part of the logic is concerned with matching the syntactic structure of expressions in the calculus.
  • the matching of the structure of formulas to the structure of processes is done in a flexible manner, up to process equivalence, such that it is not entirely syntactical.
  • a number of logical inference rules including rules for propositional logic, rules for modal operators such as time, space and validity, and rules for locations and process composition are also derived.
  • Inactivity for a process means that the process does nothing; that is, it has no activity.
  • Q means there is a resulting process composed of both P and Q.
  • Replication means that the process has been replicated, or duplicated, as opposed to moving from one container to another; the replication !P means the same effectively as an infinite array of replicas of P running in parallel.
  • the ambient M[P] means that the process P resides within the container, or ambient, M.
  • the capability action M.P means that the process is capable of the action, or finctionality, M followed by the continuation P.
  • the input action (n).P means that the process can accept an input message, bind it to n and continue with P.
  • the asynchronous output action (M) means that the process performs an output of the message M and stops.
  • a message expression M can take one of several forms. It can be a name n. It can be one of the capabilities, in M, out M, or open M, whose effect when exercised, respectively, is to move the enclosing ambient into a sibling M, to move the enclosing ambient out its parent M, or to dissolve the boundary around an adjacent ambient M. It can be a null capability ⁇ . Or it may be a path MM′, whose effect is that of exercising first M and then M′.
  • a process P has a set of free names, written as fn(P), which generally refers to any of the names textually occurring in the process P can take. More formally, fn(P) is defined by the following table.
  • the thirteen statements within this table are explained as follows.
  • the first statement states that there are no free names for the inactivity process.
  • the symbol ⁇ specifies that the left-hand side of the symbol is defined as the right-hand side of the symbol. This definition is applicable in any statement in which the symbol ⁇ appears.
  • the second statement states that the free names for the composition P
  • the third statement states that when a process is replicated from another process, it has the same free names as that latter process.
  • the fourth statement states that the free names of a container M having therein a process P are the free names of M by itself conjoined with the free names of P—that is, M[P] cannot take on any names that are not allowed by either M itself or P itself.
  • the fifth statement states that the free names of the capability action M.P cannot take on any names that are not allowed by either M itself or P itself.
  • the sixth statement states that the free names of the input action (n).P are the free names of the process P, minus the name n.
  • the seventh statement states that the free names of the asynchronous output action ⁇ M> are the same as the free names of the message M itself.
  • the eighth statement means that the free names of a name n is the singleton set containing n.
  • the ninth statement means that the free names of the capability “can enter into M” are the same as the free names of M itself.
  • the tenth and eleventh statements means that the free names of the capabilities “can exit out of M” and “can open M,” respectively, are the same as the free names of M itself.
  • the twelfth statement states that there are no free names for the null capability.
  • the Thirteenth statement states that the free names of the path M.M′ are equal to the free names of M conjoined with the free names of M′.
  • Structural congruence is defined as summarized in the following table.
  • P ⁇ P (Struct Refl) (2) P ⁇ Q Q ⁇ P (Struct Symm) (3) P ⁇ Q, Q ⁇ R P ⁇ R (Struct Trans) (4) P ⁇ Q P
  • Structural reflectivity means that P is equal to P.
  • Structural symmetry means that if P equals Q, then Q equals P.
  • Structural transitivity means that if P equals Q and Q equals R, then P also equals R.
  • the fourth statement means that if P equals Q, then the composition P
  • the fifth statement means that if P equals Q, then the replication of P equals the replication of Q.
  • the sixth statement means that if P equals Q the ambient M in which P is contained, M[P], equals the ambient M in which Q is contained, M[Q].
  • the seventh statement means that if P equals Q, then the exercise of the expression M before the action of P, M.P, is equal to the exercise of the expression M before the action of Q, M.Q.
  • the eighth statement means that if P equals Q, then P prefixed by the input action x is equal to Q prefixed by the input action x.
  • the ninth statement means that prefixing the process P with the null capability is the same as just stating the process P.
  • the tenth statement means that stating (M.M′).P is the same as stating M.M′.P.
  • the eleventh statement is the commutative property, that the composition P
  • the twelfth statement is the associative property, that the composition of (P
  • the thirteenth statement states that the replication of P is equal to the composition P
  • the fourteenth statement is an identity statement, that the composition of P and the inactivity process is equal to P, while the fifteenth statement states that replicating the inactivity process is equal to the inactivity process itself.
  • logical formulas of the modal logic are presented.
  • the logical formulas are based on a modal predicate logic with classical negation, as can be appreciated by those of ordinary skill within the art.
  • Many connectives are interdefinable: existential formulations are given preference, because they have a more intuitive meaning than the corresponding universal ones.
  • Two tables are provided: one specifying the logical formulas, and the next specifying connectives derived from the logical formulas.
  • A, B, C :: 1 T true 2 A negation 3 A B disjunction 4 N[A] location 5 A
  • the logical formulas of the preceding table are described as follows.
  • the first statement is a logical true, while the second statement is a logical negation and the third statement is a logical disjunction.
  • the fourth statement means that the process A is located within the container, or ambient, n.
  • the fifth statement is a logical composition.
  • the sixth statement specifies the existential quantifier operation, that there is some process A within the container named n.
  • the seventh statement specifies a spatial operator, that somewhere, at some location, the process A exists. That is, within some container, anywhere in the domain space being considered, the process A exists.
  • the eighth statement specifies a temporal operator, that at some point in time, the process A will exist (or currently exists).
  • the ninth statement specifies that the process A exists within the container named n.
  • the tenth statement is a logical composition adjunct. 1 F T false 2 A B ( A B) conjunction 3 A B A B implication 4 A B (A B) (B A) logical equivalence 5 A ⁇ B ( A
  • the derived connectives of the preceding table are explained as follows.
  • the first statement is the logical false, and is derived and defined as a function of the logical true.
  • the second statement is the logical conjunction, while the third statement is the logical implication and the fourth logical equivalence.
  • the fifth statement specifies logical decomposition.
  • the sixth statement defines !A as universal satisfaction, that every component satisfies the process A.
  • the seventh statement defines ?A as partial satisfaction, that some component satisfies the process A.
  • the eighth statement defines the universal quantifier ⁇ in terms of the existential quantifier ⁇ ; that all the processes A are within the container n.
  • the ninth statement states that the process A exists everywhere, from a spatial perspective, while the tenth statement states that the process A has existed, and still exists, at everytime.
  • the eleventh and twelfth statements specify the in every location context and the in every composition context, respectively, and are derived from the ninth and tenth logical formula statements of the logical formulas table.
  • a process P satisfies the formula A B if, given any parallel context P′ satisfying A, the combination P′
  • Another reading of P A B is that P manages to satisfy B under any possible attack by an opponent that is bound to satisfy A.
  • P satisfies ( ⁇ A) ( ⁇ A)” means that P preserves the invariant A. ⁇ P: ⁇ .
  • P F ⁇ P: ⁇ , A, B: ⁇ .
  • P A B iff P A P B ⁇ P: ⁇ , A, B: ⁇ .
  • P A B iff P A P B ⁇ P: ⁇ , A, B: ⁇ .
  • P A B iff P A P B ⁇ P: ⁇ , A, B: ⁇ .
  • process P satisfies the formula A B, it means that in every context that satisfies A, the combination (of P and the context) satisfies B. Instead, if process P satisfies the formula (A B), it means that in every context, if and only if the combination satisfies A then the combination satisfies B.
  • Validity is used for modeling logical inference rules, as described in the next definition.
  • a linearized notation is used for inference rules, where the usual horizontal bar separating antecedencts from consequents is written ‘/’, and ‘;’ is used to separate antecedents.
  • a B can be defined as A B.
  • ⁇ , ⁇ , and are modal S4: ( ⁇ ) / T ⁇ ⁇ A ⁇ A ( ) / T ⁇ A A ( ⁇ K) / T ⁇ ⁇ (A B) ( ⁇ A ⁇ B) ( K) / T ⁇ (A B) ( A B) ( ⁇ T) / T ⁇ ⁇ A A ( T) / T ⁇ A A ( ⁇ 4) / T ⁇ ⁇ A ⁇ A ( 4) / T ⁇ A ⁇ M) A ⁇ B / ⁇ A ⁇ ⁇ B ( M) A ⁇ B / A ⁇ B ( ⁇ ) ⁇ (A C) ⁇ B // ⁇ A ⁇ C ⁇ B ( ) (A C) ⁇ B // A C ⁇ B ( ⁇ ) A ⁇ ⁇ (C B) // A ⁇ ⁇ C ⁇ B ( ) A ⁇ (C B) // A ⁇ C B
  • the following propositions and corollaries relate to location adjunct rules, and composition adjunct rules.
  • the first proposition states that A@n and n[A] are adjuncts.
  • Vld, Sat is Modal S5 (Sat) / T ⁇ SatA Vld A (Vld K) / T ⁇ Vld(A B) ((VldA) (VldB)) (Vld T) / T ⁇ (VldA) A (Vld 5) / T ⁇ (SatA) (Vld Sat A) (Vld M) A ⁇ B / VldA ⁇ VldB (Vld ) Vld(A C) ⁇ B // VldA VldC ⁇ B (Vld ) A ⁇ Vld(C B) // A ⁇ VldC VldB Reflecting Name Equality
  • FIGS. 4 and 5 are examples for illustrative purposes only, and do not represent a limitation on the invention.
  • a container n includes a process Q, and includes a policy telling the container how to behave. Specifically, the policy is in m.P, which instructs the container n including the process Q to move into the container m already having the policy R therein, as shown in situation 400 .
  • a container n includes a process Q, and the policy telling the container how to behave is out m.P, which instructs the container n including the process Q to move out of the container m also having the policy R therein, as shown.
  • a communication operation referred to as a note is shown in the situation 500 .
  • the note can reside within a container.
  • the capabilities that can be held by the note include names, such as n, as well as action capabilities, such as in n, out n, open n, or a path, such as C.C′, as has been described in the modal logic section of the detailed description.
  • the methods make use of the modal logics described in the previous section of the detailed description, which are based on ambient calculus and provide for spatial relationships among processes of containers.
  • the methods relate to a model-checking algorithm.
  • the computer-implemented methods are desirably realized at least in part as one or more programs running on a computer—that is, as a program executed from a computer- or machine-readable medium such as a memory by a processor of a computer.
  • the programs are desirably storable on a machine-readable medium such as a floppy disk or a CD-ROM, for distribution and installation and execution on another computer.
  • the method references sub-methods norm, sublocation and reachable. In one embodiment of the invention, these sub-methods are implemented as described in a succeeding embodiment of the invention.
  • a process is input. This is the process that is to be analyzed.
  • the process may be a thread, an applet, an agent, etc.; the invention is not so limited.
  • the process itself may be a composition of one or more processes.
  • the process can be the composition P
  • the formula against which the process is to be analyzed can be a policy, such as a security policy or a mobility policy, such that the policy is described using the predetermined modal logic, such as has been described in the preceding sections of the detailed description.
  • the process is analyzed in a recursive manner.
  • the process is analyzed in three ways, referred herein as an initial checking of the process against the formula.
  • Check(P, A) Check(P, A). This means that if the formula is a negation A then the outcome of the analysis is the negation of a recursive analysis of the process P against formula A.
  • Check(P, A B) Check(P, A) Check(P, B). This means that the outcome of the analysis is the disjunction of recursively checking the process P against formula A and checking the process P against formula B.
  • the process is normalized, and it is determined whether the process includes only one element, or entry. If there is more than one element, then the process fails against the policy.
  • the process is partitioned to determine whether each component of the process satisfies the formula, or policy. If any component fails against the policy, then the process itself fails.
  • the check of 306 only applies if the formula is a composition A
  • a unification algorithm as known within the art, can be used to effectuate the check of 308 , to make the check more efficient.
  • the invention is not so limited.
  • each sublocation of the process is checked, or analyzed, against the formula, or process. If the check fails for any sublocation, then the process itself fails against the policy.
  • the check of 310 only applies if the formula is a somewhere modality ⁇ A. This check can be expressed as:
  • the spatial reach of the processed is checked, or analyzed, against the formula, or process. This check thus determines whether the process has a finite spatial reach. If the check fails, then the process itself fails against the policy. The check of 312 only applies if the formula is a sometime modality ⁇ A.
  • output is not limited to the manner by which output is accomplished.
  • it can be output to a further analysis program or software component that allows for analysis and conclusions to be drawn.
  • the output can be displayed on a display device, or printed to a printer, etc.
  • output can mean storage to a storage device, for later and/or further analysis by a program or software component.
  • the above method can be effectuated by a system in one embodiment of the invention. That is, a system including a processor and a computer-readable medium, such that first data stored on the medium represents the process, and second data stored on the medium represents the formula.
  • an analysis program is executed by the processor from the medium to analyze the process against the formula, for example, in a recursive manner.
  • Any replication-free process may be factored up to structural congruence into a normal form consisting of a composition of prime processes, where a prime process is an ambient, an action, an input, or an output.
  • Norm(M[P]) [M[P]]
  • Norm(0) [ ]
  • Q) Norm(P)++Norm(Q)
  • Norm( M ) [ M ]

Abstract

Ambient calculus-based modal logic model checking is disclosed. In one embodiment, a method receives a process for analysis against a formula, and outputs whether it satisfies the formula. In one embodiment, process analysis is conducted in a recursive manner. The process is normalized to determine whether the process comprises a single element. The process is partitioned to determine whether each component satisfies the formula. A plurality of names of the process is determined, and it is verified that a name exists for the formula that is unequal to any of the plurality. Each process sublocation is analyzed, as well as the spatial process reach.

Description

    RELATED APPLICATIONS
  • This application is a continuation-in-part application of U.S. patent application Ser. No. 9/430,225 filed Oct. 29, 1999 and entitled “AMBIENT CALCULUS-BASED MODAL LOGIC MODEL CHECKING” which claims the benefit of U.S. Provisional Patent Application Ser. No. 60/125,010 filed on Mar. 18, 1999 and entitled “MODAL LOGICS FOR MOBILE AMBIENTS” and U.S. Provisional Patent Application Ser. No. 60/132,600 filed on May 5, 1999 and entitled “MODEL CHECKING A SPATIAL, TEMPORAL LOGIC.” This application is also related to co-pending U.S. Patent Application Serial No. ______ (Docket Number MS131764.03/MSFTP271USB) filed on ______ and entitled “AMBIENT CALCULUS-BASED MODAL LOGICS FOR MOBILE AMBIENTS.” The entireties of these applications are incorporated herein by reference.
  • FIELD OF THE INVENTION
  • This invention relates generally to ambient calculus-based modal logics, and more specifically to model checking for such ambient calculus-based modal logics.
  • BACKGROUND OF THE INVENTION
  • Computing has become increasingly interconnected. Whereas before computers were discrete, unconnected units, because of the Internet as well as other networks, they are increasingly fluid, interconnected units. A computer program, which may be made up of one or more executable processes, or threads, may be mobile. For example, a thread of the program may move from computer to computer over the Internet. It may be executed in a distributed fashion over many computers, or a different instance of the thread may be run on each of many computers.
  • The movement of threads from computer to computer, or even to different parts within the same computer, poses new security and other risks for which there is no formal analysis mechanism. For example, a thread may be unstable, such that having it be run on a particular computer may cause the computer to crash. More so, the thread may be malicious, such as part of a virus program, such that its purpose is to compromise the computers it moves to.
  • More specifically, there are two distinct areas of work in mobility: mobile computing, concerning computation that is carried out in mobile devices (laptops, personal digital assistants, etc.), and mobile computation, concerning mobile code that moves between devices (agents, etc.). Mobility requires more than the traditional notion of authorization to run or to access information in certain domains: it involves the authorization to enter or exit certain domains. In particular, as far as mobile computation is concerned, it is not realistic to imagine that an agent can migrate from any point A to any point B on the Internet. Rather an agent must first exit its administrative domain (obtaining permission to do so), enter someone else's administrative domain (again, obtaining permission to do so) and then enter a protected area of some machine where it is allowed to run (after obtaining permission to do so).
  • Access to information is controlled at many levels, thus multiple levels of authorization may be involved. Among these levels we have: local computer, local area network, regional area network, wide-area intranet and internet. Mobile programs should be equipped to navigate this hierarchy of administrative domain, at every step obtaining authorization to move further. Laptops should be authorized to access resources depending on their location in the administrative hierarchy.
  • In general, a process or thread resides within a container referred to as an ambient. The ambient includes one or more processes or threads, as well as any data, etc., that move with the processes or threads. An ambient that can move is referred to as a mobile ambient. The ambient can be any type of container: a software container such as a particular part of an operating system, for example, as well as a hardware container, such as a particular computer or peripheral device.
  • More specifically, an ambient has the following main characteristics. First, an ambient is a bounded placed where computation happens. The interesting property here is the existence of a boundary around an ambient. Examples of ambients include: a web page (bounded by a file), a virtual address space (bounded by an addressing range), a Unix file system (bounded within a physical volume), a single data object (bounded by “self”) and a laptop (bounded by its case and data ports). Non-examples are: threads (the boundary of what is “reachable” is difficult to determine) and logically related collections of objects.
  • Second, an ambient is something that can be nested within other ambients. For example, to move a running application from work to home, the application must be removed from an enclosing (work) ambient and inserted in a different enclosing (home) ambient. A laptop may need a removal pass to leave a workplace, and a government pass to leave or enter a country.
  • Third, an ambient is something that can be moved as a whole. If a laptop is connected to a different network, all the address spaces and file systems within it move accordingly and automatically. If an agent is moved from one computer to another, its local data should move accordingly and automatically.
  • As mentioned, there is no formal analysis mechanism within the prior art for such mobile ambients. This means that there is no manner by which to describe formally, for example, a security policy for a given computer system, which could be applied against a mobile ambient within a formal analysis mechanism to determine if the ambient poses a security or other risk to the system. In particular, most formal analysis mechanisms, or frameworks, only provide for temporal distinction among processes and ambients, but assume that the processes and ambients are stationary—or otherwise do not provide for spatial distinction among them. Furthermore, there is no manner by which to formally verify that a policy or other model for process and ambients can be verified for correctness.
  • For these and other reasons, there is a need for the present invention.
  • SUMMARY OF THE INVENTION
  • The invention relates to ambient calculus-based modal logic model checking. In one embodiment, a computer-implemented method receives a process, which is also referred to as a thread or agent in varying embodiments. The method analyzes the process against a formula using a predetermined modal logic based on ambient calculus. The formula, for example, can represent a model to be checked, a policy to be verified, such as a security policy, etc. The method finally outputs whether the process satisfies the formula or not.
  • In one embodiment, analysis of the process against the formula is conducted in a recursive manner. The process is normalized to determine whether the process comprises only a single element. The process is partitioned to determine whether each component of the process satisfies the formula. A plurality of names of the process is determined, and it is verified that a name exists for the formula that is unequal to any of this plurality of names. Each sub-location of the process is analyzed against the formula. The spatial reach of the process is also analyzed against the formula.
  • Embodiments of the invention provide for advantages over the prior art. A policy, such as a security or mobility policy, expressed in terms of a formula according to the modal logic can be verified in a formal manner. For example, the logic can be used to describe a policy as how an applet can move around among different containers, or ambients. A process can then be matched, or analyzed, against this formal description of the policy. The policy can be intricate, stating, for example, how a process can run on a specific machine, in detail.
  • Embodiments of the invention include computer-implemented methods, computer-readable media, and computerized systems of varying scope. Still other embodiments, advantages and aspects of the invention will become apparent by reading the following detailed description, and by reference to the drawings.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 illustrates an exemplary operating environment in accordance with an aspect of the invention.
  • FIG. 2 illustrates an exemplary mobile computing environment in accordance with an aspect of the invention.
  • FIG. 3 illustrates an exemplary method according to an aspect of the invention.
  • FIGS. 4-5 illustrate example situations of mobile ambients that are utilized in conjunction with modal logic of varying aspects of the invention.
  • DETAILED DESCRIPTION OF THE INVENTION
  • The detailed description is organized as follows. The first section, the introduction, provides guidelines as to how to interpret the other sections of the detailed description. The second section describes an operating environment in context with which embodiments of the invention can be practiced. The third section provides a description of a mobile computing environment, which also gives guidance as to the context in which embodiments of the invention can be practiced. The fourth section describes modal logics, in accordance with which embodiments of the invention can be practiced. This fourth section includes various sub-sections, each of which detail different aspects of such modal logics. The fifth section highlights some examples of processes and formulas in the context of such modal logics. The sixth section presents methods according to embodiments of the invention, which rely on the modal logics of the fourth section. The methods relate generally to analyzing processes against formulas in the context of the modal logics. Finally, a conclusion is given in the seventh section of the detailed description.
  • Introduction:
  • In the following detailed description of exemplary embodiments of the invention, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration specific exemplary embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that logical, mechanical, electrical and other changes may be made without departing from the spirit or scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the appended claims.
  • Some portions of the detailed descriptions which follow are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. (It is noted that the terms document and text are used interchangeably herein and should be construed as interchangeable as well.)
  • It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present invention, discussions utilizing terms such as processing or computing or calculating or determining or displaying or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
  • Operating Environment:
  • Referring to FIG. 1, a diagram of the hardware and operating environment in conjunction with which embodiments of the invention may be practiced is shown. The description of FIG. 1 is intended to provide a brief, general description of suitable computer hardware and a suitable computing environment in conjunction with which the invention may be implemented. Although not required, the invention is described in the general context of computer-executable instructions, such as program modules, being executed by a computer, such as a personal computer. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types.
  • Moreover, those skilled in the art will appreciate that the invention may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PC's, minicomputers, mainframe computers, and the like. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
  • The exemplary hardware and operating environment of FIG. 1 for implementing the invention includes a general purpose computing device in the form of a computer 20, including a processing unit 21, a system memory 22, and a system bus 23 that operatively couples various system components include the system memory to the processing unit 21. There may be only one or there may be more than one processing unit 21, such that the processor of computer 20 comprises a single central-processing unit (CPU), or a plurality of processing units, commonly referred to as a parallel processing environment. The computer 20 may be a conventional computer, a distributed computer, or any other type of computer; the invention is not so limited.
  • The system bus 23 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. The system memory may also be referred to as simply the memory, and includes read only memory (ROM) 24 and random access memory (RAM) 25. A basic input/output system (BIOS) 26, containing the basic routines that help to transfer information between elements within the computer 20, such as during start-up, is stored in ROM 24. The computer 20 further includes a hard disk drive 27 for reading from and writing to a hard disk, not shown, a magnetic disk drive 28 for reading from or writing to a removable magnetic disk 29, and an optical disk drive 30 for reading from or writing to a removable optical disk 31 such as a CD ROM or other optical media.
  • The hard disk drive 27, magnetic disk drive 28, and optical disk drive 30 are connected to the system bus 23 by a hard disk drive interface 32, a magnetic disk drive interface 33, and an optical disk drive interface 34, respectively. The drives and their associated computer-readable media provide nonvolatile storage of computer-readable instructions, data structures, program modules and other data for the computer 20. It should be appreciated by those skilled in the art that any type of computer-readable media which can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, random access memories (RAMs), read only memories (ROMs), and the like, may be used in the exemplary operating environment.
  • A number of program modules may be stored on the hard disk, magnetic disk 29, optical disk 31, ROM 24, or RAM 25, including an operating system 35, one or more application programs 36, other program modules 37, and program data 38. A user may enter commands and information into the personal computer 20 through input devices such as a keyboard 40 and pointing device 42. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit 21 through a serial port interface 46 that is coupled to the system bus, but may be connected by other interfaces, such as a parallel port, game port, or a universal serial bus (USB). A monitor 47 or other type of display device is also connected to the system bus 23 via an interface, such as a video adapter 48. In addition to the monitor, computers typically include other peripheral output devices (not shown), such as speakers and printers.
  • The computer 20 may operate in a networked environment using logical connections to one or more remote computers, such as remote computer 49. These logical connections are achieved by a communication device coupled to or a part of the computer 20; the invention is not limited to a particular type of communications device. The remote computer 49 may be another computer, a server, a router, a network PC, a client, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 20, although only a memory storage device 50 has been illustrated in FIG. 1. The logical connections depicted in FIG. 1 include a local-area network (LAN) 51 and a wide-area network (WAN) 52. Such networking environments are commonplace in office networks, enterprise-wide computer networks, intranets and the Internet, which are all types of networks.
  • When used in a LAN-networking environment, the computer 20 is connected to the local network 51 through a network interface or adapter 53, which is one type of communications device. When used in a WAN-networking environment, the computer 20 typically includes a modem 54, a type of communications device, or any other type of communications device for establishing communications over the wide area network 52, such as the Internet. The modem 54, which may be internal or external, is connected to the system bus 23 via the serial port interface 46. In a networked environment, program modules depicted relative to the personal computer 20, or portions thereof, may be stored in the remote memory storage device. It is appreciated that the network connections shown are exemplary and other means of and communications devices for establishing a communications link between the computers may be used.
  • Mobile Computing Environment:
  • In this section of the detailed description, an example mobile computing environment in conjunction with which embodiments of the invention can be practiced. That is, an example mobile computing environment, made up of ambients (containers) and processes (threads), is presented. Modal logics can then be used to represent these ambients and processes, as well as describe configurations of multiple such ambients and processes, and policies and formulas against which specific ambients and processes can be applied to determine if they satisfy the policies and formulas. That is, model checking as described herein can be used in accordance with such modal logics.
  • Referring to FIG. 2, an example mobile computing environment 200 is shown. The environment 200 specifically includes ambients, or containers, 202, 204 and 206. As shown in FIG. 2, the ambient 202 resides within the ambient 204. The ambient 202 is named a; the ambient 204 is named b; and, the ambient 206 is named c. A process P resides within the ambient 204, while a process Q resides within the ambient 202, and processes R and S reside within the ambient 206.
  • As has been described, each ambient, or container, can be a software or a hardware container. A software container may be a particular area defined by an operating system. Examples include stacks, heaps, sand boxes, as the latter term is referred to in the context of the Java programming language, etc. A hardware container may be a particular computer, such as a client or a server computer, as well as a particular computer peripheral. An example of a computer has been described in the preceding section of the detailed description.
  • More specifically, an ambient as used herein has the following properties:
      • Each ambient has a name. The name of an ambient is used to control access (entry, exit, communication, etc.). In a realistic situation the true name of an ambient would be guarded very closely, and only specific capabilities would be handed out about how to use the name. In our examples we are usually more liberal in the handling of names, for sake of simplicity.
      • Each ambient has a collection of local agents (referred interchangeably herein as threads or processes). These are the computations that run directly within the ambient and, in a sense, control the ambient. For example, they can instruct the ambient to move.
      • Each ambient may have a collection of subambients. Each subambient has its own name, agents, subambients, etc.
  • Names refer to:
      • something that can be created, passed around and used to name new ambients.
      • something from which capabilities can be extracted.
  • The logic of embodiments of the invention pertains to a mobile computing environment. Thus, the ambients of FIG. 2 are mobile. As shown in FIG. 2, for example, the ambient 202 is moving out of the ambient 204. There may be, for example, a particular policy or formula, expressed in the logic that defines whether such a move can occur such that it can be applied against the ambient 202 and the policy therein to determine whether such a move should be allowed to occur. Each of the ambients and their resident processes are also representable in the logic of embodiments of the invention, which is described in the next section of the detailed description.
  • Modal Logic:
  • In this section of the detailed description, modal logics based on ambient calculus, and providing for spatial relationships among processes of containers are presented. The logic makes assertions about the containment and contiguity of containers. Part of the logic is concerned with matching the syntactic structure of expressions in the calculus. The matching of the structure of formulas to the structure of processes is done in a flexible manner, up to process equivalence, such that it is not entirely syntactical. A number of logical inference rules, including rules for propositional logic, rules for modal operators such as time, space and validity, and rules for locations and process composition are also derived.
  • Basic Ambient Calculus:
  • The following table summarizes a basic ambient calculus upon which a modal logic according to an embodiment of the invention is based. There is no name restriction in the basic ambient calculus. The subsequent tables summarize the syntax of processes, the structural congruence relation between processes, and the reduction semantics.
    P, Q, R ::= processes
     0 inactivity
     P|Q composition
     !P replication
     M[P] ambient
     M.P capability action
     (n).P input action
    Figure US20050080603A1-20050414-P00801
    M
    Figure US20050080603A1-20050414-P00802
    async output action
    M ::= capabilities
     n name
     in M can enter into M
     out M can exit out of M
     open M can open M
     ε null
     M.M′ path
  • Inactivity for a process means that the process does nothing; that is, it has no activity. The composition P|Q means there is a resulting process composed of both P and Q. Replication means that the process has been replicated, or duplicated, as opposed to moving from one container to another; the replication !P means the same effectively as an infinite array of replicas of P running in parallel. The ambient M[P] means that the process P resides within the container, or ambient, M. The capability action M.P means that the process is capable of the action, or finctionality, M followed by the continuation P. The input action (n).P means that the process can accept an input message, bind it to n and continue with P. The asynchronous output action (M) means that the process performs an output of the message M and stops.
  • A message expression M can take one of several forms. It can be a name n. It can be one of the capabilities, in M, out M, or open M, whose effect when exercised, respectively, is to move the enclosing ambient into a sibling M, to move the enclosing ambient out its parent M, or to dissolve the boundary around an adjacent ambient M. It can be a null capability ε. Or it may be a path MM′, whose effect is that of exercising first M and then M′. A process P has a set of free names, written as fn(P), which generally refers to any of the names textually occurring in the process P can take. More formally, fn(P) is defined by the following table.
     (1) fn(0)
    Figure US20050080603A1-20050414-P00803
    φ
     (2) fn(P|Q)
    Figure US20050080603A1-20050414-P00803
    fn(P) ∪ fn(Q)
     (3) fn(!P)
    Figure US20050080603A1-20050414-P00803
    fn(P)
     (4) fn(M[P])
    Figure US20050080603A1-20050414-P00803
    fn(M) ∪ fn(P)
     (5) fn(M.P)
    Figure US20050080603A1-20050414-P00803
    fn(M) ∪ fn(P)
     (6) fn((n).P)
    Figure US20050080603A1-20050414-P00803
    fn(P) − {n}
     (7) fn(
    Figure US20050080603A1-20050414-P00801
    M
    Figure US20050080603A1-20050414-P00802
    )
    Figure US20050080603A1-20050414-P00803
    fn(M)
     (8) fn(n)
    Figure US20050080603A1-20050414-P00803
    {n}
     (9) fn(in M)
    Figure US20050080603A1-20050414-P00803
    fn(M)
    (10) fn(out M)
    Figure US20050080603A1-20050414-P00803
    fn(M)
    (11) fn(open M)
    Figure US20050080603A1-20050414-P00803
    fn(M)
    (12) fn(ε)
    Figure US20050080603A1-20050414-P00803
    φ
    (13) fn(M.M′)
    Figure US20050080603A1-20050414-P00803
    fn(M) ∪ fn(M′)
  • The thirteen statements within this table are explained as follows. The first statement states that there are no free names for the inactivity process. The symbol Δ specifies that the left-hand side of the symbol is defined as the right-hand side of the symbol. This definition is applicable in any statement in which the symbol Δ appears. The second statement states that the free names for the composition P|Q are the free names for P conjoined with the free names for Q. The third statement states that when a process is replicated from another process, it has the same free names as that latter process. The fourth statement states that the free names of a container M having therein a process P are the free names of M by itself conjoined with the free names of P—that is, M[P] cannot take on any names that are not allowed by either M itself or P itself. The fifth statement states that the free names of the capability action M.P cannot take on any names that are not allowed by either M itself or P itself. The sixth statement states that the free names of the input action (n).P are the free names of the process P, minus the name n.
  • The seventh statement states that the free names of the asynchronous output action <M> are the same as the free names of the message M itself. The eighth statement means that the free names of a name n is the singleton set containing n. The ninth statement means that the free names of the capability “can enter into M” are the same as the free names of M itself. Likewise, the tenth and eleventh statements means that the free names of the capabilities “can exit out of M” and “can open M,” respectively, are the same as the free names of M itself. The twelfth statement states that there are no free names for the null capability. The Thirteenth statement states that the free names of the path M.M′ are equal to the free names of M conjoined with the free names of M′.
  • Furthermore, it is noted that the terminology P{n←M} is used for the substitution of the capability M for each free occurrence of the name n in the process P, and similarly for M{n←M′}.
  • Structural congruence is defined as summarized in the following table. We use the symbol ≡ to denote the relation of structural congruence, and in general write the phrase P≡Q to mean that processes P and Q are equal up to structural congruence.
     (1) P ≡ P (Struct Refl)
     (2) P ≡ Q
    Figure US20050080603A1-20050414-P00804
    Q ≡ P
    (Struct Symm)
     (3) P ≡ Q, Q ≡ R
    Figure US20050080603A1-20050414-P00804
    P ≡ R
    (Struct Trans)
     (4) P ≡ Q
    Figure US20050080603A1-20050414-P00804
    P|R ≡ Q|R
    (Struct Par)
     (5) P ≡ Q
    Figure US20050080603A1-20050414-P00804
    !P ≡ !Q
    (Struct Repl)
     (6) P ≡ Q
    Figure US20050080603A1-20050414-P00804
    M[P] ≡ M[Q]
    (Struct Amb)
     (7) P ≡ Q
    Figure US20050080603A1-20050414-P00804
    M.P ≡ M.Q
    (Struct Action)
     (8) P ≡ Q
    Figure US20050080603A1-20050414-P00804
    (x).P ≡ (x).Q
    (Struct Input)
     (9) ε.P ≡ P (Struct ε)
    (10) (M.M′).P ≡ M.M′.P (Struct .)
    (11) P|Q ≡ Q|P (Struct Par Comm)
    (12) (P|Q)|R ≡ P|(Q|R) (Struct Par Assoc)
    (13) !P ≡ P|!P (Struct Repl Par)
    (14) P|0 ≡ P (Struct Zero Par)
    (15) !0 ≡ 0 (Struct Zero Repl)
  • This table is explained as follows. Structural reflectivity means that P is equal to P. Structural symmetry means that if P equals Q, then Q equals P. Structural transitivity means that if P equals Q and Q equals R, then P also equals R. The fourth statement means that if P equals Q, then the composition P|R is equal to the composition Q|R. The fifth statement means that if P equals Q, then the replication of P equals the replication of Q. The sixth statement means that if P equals Q the ambient M in which P is contained, M[P], equals the ambient M in which Q is contained, M[Q]. Similarly, the seventh statement means that if P equals Q, then the exercise of the expression M before the action of P, M.P, is equal to the exercise of the expression M before the action of Q, M.Q. The eighth statement means that if P equals Q, then P prefixed by the input action x is equal to Q prefixed by the input action x.
  • The ninth statement means that prefixing the process P with the null capability is the same as just stating the process P. The tenth statement means that stating (M.M′).P is the same as stating M.M′.P. The eleventh statement is the commutative property, that the composition P|Q is equal to the composition Q|P. The twelfth statement is the associative property, that the composition of (P|Q) and R is equal to the composition of P and (Q|R). The thirteenth statement states that the replication of P is equal to the composition P|!P. The fourteenth statement is an identity statement, that the composition of P and the inactivity process is equal to P, while the fifteenth statement states that replicating the inactivity process is equal to the inactivity process itself.
  • Reduction is summarized in the next table. In it, the left side of the arrow (→) reduces to the expression on the right side of the arrow.
    (1) n[in m.P|Q]|m[R] → m[n[P|Q]|R] (Red In)
    (2) m[n[out m.P|Q]|R] → n[P|Q]|m[R] (Red Out)
    (3) open n.P|n[Q] → P|Q (Red Open)
    (4) (n).P|(M) → P{n
    Figure US20050080603A1-20050414-P00813
    M}
    (Red Comm)
    (5) P → Q
    Figure US20050080603A1-20050414-P00804
    n[P] → n[Q]
    (Red Amb)
    (6) P → Q
    Figure US20050080603A1-20050414-P00804
    P|R → Q|R
    (Red Par)
    (7) P′ ≡ P, P → Q, Q ≡ Q′
    Figure US20050080603A1-20050414-P00804
    P′ → Q′
    (Red ≡)
    (8) →* reflexive and transitive
    closure of →
  • Finally, the following syntactic conventions and abbreviations, as summarized in the next table, are used herein. A fact is also provided.
  • Syntactic Conventions
    !P|Q is read (!P)|Q
    M.P|Q is read (M.P)|Q
    (n).P|Q is read ((n).P)|Q
  • Abbreviations
    n[]
    Figure US20050080603A1-20050414-P00803
    n[0]
    M
    Figure US20050080603A1-20050414-P00803
    M.0
    (where appropriate)

    Fact

    n[P] ≡ m[P′] iff n = m and P ≡ P″

    Logical Formulas:
  • In this next sub-section, logical formulas of the modal logic, according to one embodiment of the invention, are presented. The logical formulas are based on a modal predicate logic with classical negation, as can be appreciated by those of ordinary skill within the art. Many connectives are interdefinable: existential formulations are given preference, because they have a more intuitive meaning than the corresponding universal ones. Two tables are provided: one specifying the logical formulas, and the next specifying connectives derived from the logical formulas.
    A, B, C ::=
     1 T true
     2
    Figure US20050080603A1-20050414-P00805
    A
    negation
     3 A
    Figure US20050080603A1-20050414-P00806
    B
    disjunction
     4 N[A] location
     5 A|B composition
     6 ∃n.A existential quantification over names
     7 ♦A somewhere modality (spatial)
     8 ⋄A Sometime modality (temporal)
     9 A@n location adjunct
    10 A
    Figure US20050080603A1-20050414-P00807
    B
    composition adjunct
  • The logical formulas of the preceding table are described as follows. The first statement is a logical true, while the second statement is a logical negation and the third statement is a logical disjunction. The fourth statement means that the process A is located within the container, or ambient, n. The fifth statement is a logical composition. The sixth statement specifies the existential quantifier operation, that there is some process A within the container named n. The seventh statement specifies a spatial operator, that somewhere, at some location, the process A exists. That is, within some container, anywhere in the domain space being considered, the process A exists. Similarly, the eighth statement specifies a temporal operator, that at some point in time, the process A will exist (or currently exists). The ninth statement specifies that the process A exists within the container named n. Finally, the tenth statement is a logical composition adjunct.
     1 F
    Figure US20050080603A1-20050414-P00803
    Figure US20050080603A1-20050414-P00805
    T
    false
     2 A
    Figure US20050080603A1-20050414-P00808
    B
    Figure US20050080603A1-20050414-P00803
    Figure US20050080603A1-20050414-P00805
    (
    Figure US20050080603A1-20050414-P00805
    A
    Figure US20050080603A1-20050414-P00806
    Figure US20050080603A1-20050414-P00805
    B)
    conjunction
     3 A
    Figure US20050080603A1-20050414-P00804
    B
    Figure US20050080603A1-20050414-P00803
    Figure US20050080603A1-20050414-P00805
    A
    Figure US20050080603A1-20050414-P00806
    B
    implication
     4 A
    Figure US20050080603A1-20050414-P00809
    B
    Figure US20050080603A1-20050414-P00803
    (A
    Figure US20050080603A1-20050414-P00804
    B)
    Figure US20050080603A1-20050414-P00808
    (B
    Figure US20050080603A1-20050414-P00804
    A)
    logical equivalence
     5 A ∥ B
    Figure US20050080603A1-20050414-P00803
    Figure US20050080603A1-20050414-P00805
    (
    Figure US20050080603A1-20050414-P00805
    A |
    Figure US20050080603A1-20050414-P00805
    B)
    decomposition
     6 !A
    Figure US20050080603A1-20050414-P00803
    A ∥ F
    every component satisfies A
     7 ?A
    Figure US20050080603A1-20050414-P00814
    some component satisfies A
     8 ∀n.A
    Figure US20050080603A1-20050414-P00803
    Figure US20050080603A1-20050414-P00805
    ∃n.
    Figure US20050080603A1-20050414-P00805
    A
    universal quantification over names
     9
    Figure US20050080603A1-20050414-P00811
    A
    Figure US20050080603A1-20050414-P00803
    Figure US20050080603A1-20050414-P00805
    Figure US20050080603A1-20050414-P00810
    Figure US20050080603A1-20050414-P00805
    A
    everywhere modality (spatial)
    10 □A
    Figure US20050080603A1-20050414-P00803
    Figure US20050080603A1-20050414-P00805
    Figure US20050080603A1-20050414-P00805
    A
    everytime modality (temporal)
    11 A@
    Figure US20050080603A1-20050414-P00803
    ∀n.A@n
    in every location context
    12
    Figure US20050080603A1-20050414-P00807
    A
    Figure US20050080603A1-20050414-P00803
    T
    Figure US20050080603A1-20050414-P00807
    A
    in every composition context
  • The derived connectives of the preceding table are explained as follows. The first statement is the logical false, and is derived and defined as a function of the logical true. The second statement is the logical conjunction, while the third statement is the logical implication and the fourth logical equivalence. The fifth statement specifies logical decomposition. The sixth statement defines !A as universal satisfaction, that every component satisfies the process A. Likewise, the seventh statement defines ?A as partial satisfaction, that some component satisfies the process A. The eighth statement defines the universal quantifier ∀ in terms of the existential quantifier ∃; that all the processes A are within the container n. The ninth statement states that the process A exists everywhere, from a spatial perspective, while the tenth statement states that the process A has existed, and still exists, at everytime. The eleventh and twelfth statements specify the in every location context and the in every composition context, respectively, and are derived from the ninth and tenth logical formula statements of the logical formulas table.
  • Finally, the following syntactic conventions are utilized herein.
      • Parentheses are used for explicit precedence.
      • Infix ‘
        Figure US20050080603A1-20050414-P00900
        ’ binds stronger than ‘|’, and they both bind stronger than the standard logical connectives.
      • Standard precedence is used for the standard logical connectives.
      • Quantifiers and modalities extend to the right as much as possible.
        Satisfaction:
  • The satisfaction relation P
    Figure US20050080603A1-20050414-P00001
    A (process P satisfies formula A) is defined inductively in the following tables, where Π is the sort of processes, Φ is the sort of formulas, and Λ is the sort of names. Quantification and sorting of meta-variables are made explicit because of subtle scoping issues, particularly in the definition of P
    Figure US20050080603A1-20050414-P00001
    ∃n.A. Similar syntax for logical connectives is used at the meta-level and object-level.
  • The meaning of the temporal modality is given by reductions in the operational semantics of the ambient calculus. For the spatial modality, the following definitions are needed. The relation P⇓P′ indicates that P contains P′ within exactly one level of nesting. Then, P⇓*P′ is the reflexive and transitive closure of the previous relation, indicating that P contains P′ at some nesting level. Note that P′ constitutes the entire contents of an enclosed ambient.
    P↓P′ iff ∃n, P″. P ≡ n[P′] | P″
    ↓* is the reflexive and transitive closure of↓
    ∀P:Π. P
    Figure US20050080603A1-20050414-P00812
    T
    Figure US20050080603A1-20050414-P00803
    ∀P:Π,A:Φ. P
    Figure US20050080603A1-20050414-P00812
    Figure US20050080603A1-20050414-P00805
    A
    Figure US20050080603A1-20050414-P00803
    Figure US20050080603A1-20050414-P00805
    P
    Figure US20050080603A1-20050414-P00812
    A
    ∀P:Π,A,B:Φ. P
    Figure US20050080603A1-20050414-P00812
    A
    Figure US20050080603A1-20050414-P00806
    B
    Figure US20050080603A1-20050414-P00803
    P
    Figure US20050080603A1-20050414-P00812
    A
    Figure US20050080603A1-20050414-P00806
    P
    Figure US20050080603A1-20050414-P00812
    B
    ∀P:Π,n:Λ, A:Φ. P
    Figure US20050080603A1-20050414-P00812
    n[A]
    Figure US20050080603A1-20050414-P00803
    ∃P′:Π. P ≡ n[P′]
    Figure US20050080603A1-20050414-P00808
    P′
    Figure US20050080603A1-20050414-P00812
    A
    ∀P:Π,A,B:Φ. P
    Figure US20050080603A1-20050414-P00812
    A|B
    Figure US20050080603A1-20050414-P00803
    ∃P′,P″:Π. P ≡ P′|P″
    Figure US20050080603A1-20050414-P00808
    P′
    Figure US20050080603A1-20050414-P00812
    A
    Figure US20050080603A1-20050414-P00808
    P″
    Figure US20050080603A1-20050414-P00812
    B
    ∀P:Π, n:Λ, A:Φ. P
    Figure US20050080603A1-20050414-P00812
    ∃n.A
    Figure US20050080603A1-20050414-P00803
    ∃m:Λ. P
    Figure US20050080603A1-20050414-P00812
    A {n
    Figure US20050080603A1-20050414-P00813
    m}
    ∀P:Π, A:Φ. P
    Figure US20050080603A1-20050414-P00812
    Figure US20050080603A1-20050414-P00810
    A
    Figure US20050080603A1-20050414-P00803
    ∃P′:Π. P↓*P′
    Figure US20050080603A1-20050414-P00808
    P′
    Figure US20050080603A1-20050414-P00812
    A
    ∀P:Π, A:Φ. P
    Figure US20050080603A1-20050414-P00812
    ⋄A
    Figure US20050080603A1-20050414-P00803
    ∃P′:Π. P→*P′
    Figure US20050080603A1-20050414-P00808
    P′
    Figure US20050080603A1-20050414-P00812
    A
    ∀P:Π, A:Φ. P
    Figure US20050080603A1-20050414-P00812
    A@n
    Figure US20050080603A1-20050414-P00803
    n[P]
    Figure US20050080603A1-20050414-P00812
    A
    ∀P:Π, A,B:Φ. P
    Figure US20050080603A1-20050414-P00812
    A
    Figure US20050080603A1-20050414-P00807
    B
    Figure US20050080603A1-20050414-P00803
    ∀P′:Π. P′
    Figure US20050080603A1-20050414-P00812
    A
    Figure US20050080603A1-20050414-P00804
    P|P′
    Figure US20050080603A1-20050414-P00812
    B
  • The logical connectives of the preceding table are read as follows:
      • Any process satisfies the T formula.
      • A process satisfies the
        Figure US20050080603A1-20050414-P00901
        A formula if it does not satisfy the A formula.
      • A process satisfies the A
        Figure US20050080603A1-20050414-P00902
        B formula if it satisfies either the A or the B formula.
      • A process P satisfies the n[A] formula if there exists a process P′ such that P≡n[P′] and P′
        Figure US20050080603A1-20050414-P00001
        A.
      • A process P satisfies the A|B formula if there exist processes P′ and P″ such that P≡P′|P″ with P′ satisfying A and P″ satisfying B.
      • A process P satisfies the formula ∃n.A if there is a name m such that P satisfies A{n←m}. (N.B.: the meta-theoretical definition above precisely captures the fact that m can be instantiated to, but cannot itself clash with any name free in P.)
      • A process P satisfies the formula
        Figure US20050080603A1-20050414-P00002
        A if A holds at some location P′ within P, where “sublocation” is defined by P⇓*P′.
      • A process P satisfies the formula ⋄A if A holds in the future for some residual P′ of P, where “residual” is defined by P→*P′.
      • A process P satisfies the formula A@n if, when placed in an ambient n, the combination n[P] satisfies A.
  • A process P satisfies the formula A
    Figure US20050080603A1-20050414-P00900
    B if, given any parallel context P′ satisfying A, the combination P′|P satisfies B. Another reading of P
    Figure US20050080603A1-20050414-P00903
    A
    Figure US20050080603A1-20050414-P00900
    B is that P manages to satisfy B under any possible attack by an opponent that is bound to satisfy A. Moreover, “P satisfies (□A)
    Figure US20050080603A1-20050414-P00900
    (□A)” means that P preserves the invariant A.
    ∀P:Π.
    Figure US20050080603A1-20050414-P00805
    P
    Figure US20050080603A1-20050414-P00812
    F
    ∀P:Π, A, B: Φ. P
    Figure US20050080603A1-20050414-P00812
    A
    Figure US20050080603A1-20050414-P00808
    B
    iff P
    Figure US20050080603A1-20050414-P00812
    A
    Figure US20050080603A1-20050414-P00808
    P
    Figure US20050080603A1-20050414-P00812
    B
    ∀P:Π, A, B: Φ. P
    Figure US20050080603A1-20050414-P00812
    A
    Figure US20050080603A1-20050414-P00804
    B
    iff P
    Figure US20050080603A1-20050414-P00812
    A
    Figure US20050080603A1-20050414-P00804
    P
    Figure US20050080603A1-20050414-P00812
    B
    ∀P:Π, A, B: Φ. P
    Figure US20050080603A1-20050414-P00812
    A
    Figure US20050080603A1-20050414-P00809
    B
    iff P
    Figure US20050080603A1-20050414-P00812
    A
    Figure US20050080603A1-20050414-P00809
    P
    Figure US20050080603A1-20050414-P00812
    B
    ∀P:Π, A, B: Φ. P
    Figure US20050080603A1-20050414-P00812
    A ∥ B
    iff ∀P′,P″:Π. P ≡ P′|P″
    Figure US20050080603A1-20050414-P00804
    P′
    Figure US20050080603A1-20050414-P00812
    A
    Figure US20050080603A1-20050414-P00808
    P″
    Figure US20050080603A1-20050414-P00812
    B
    ∀P:Π, A:Φ. P
    Figure US20050080603A1-20050414-P00812
    !A
    iff ∀P′,P″:Π. P ≡ P′|P″
    Figure US20050080603A1-20050414-P00804
    P′
    Figure US20050080603A1-20050414-P00812
    A
    ∀P:Π, A: Φ. P
    Figure US20050080603A1-20050414-P00812
    ?A
    iff ∃P′,P″:Π. P ≡ P′|P″
    Figure US20050080603A1-20050414-P00808
    P′
    Figure US20050080603A1-20050414-P00812
    A
    ∀P:Π,n:Λ, A: Φ. P
    Figure US20050080603A1-20050414-P00812
    ∀n.A
    iff ∀m:Λ. P
    Figure US20050080603A1-20050414-P00812
    A{n
    Figure US20050080603A1-20050414-P00813
    m}
    ∀P:Π, A: Φ. P
    Figure US20050080603A1-20050414-P00812
    Figure US20050080603A1-20050414-P00811
    A
    iff ∀P′:Π. P↓*P′
    Figure US20050080603A1-20050414-P00804
    P′
    Figure US20050080603A1-20050414-P00812
    A
    ∀P:Π, A: Φ. P
    Figure US20050080603A1-20050414-P00812
    □A
    iff ∀P′:Π. P→*P′
    Figure US20050080603A1-20050414-P00804
    P′
    Figure US20050080603A1-20050414-P00812
    A
    ∀P:Π, A: Φ. P
    Figure US20050080603A1-20050414-P00812
    A@
    iff ∀n:Λ. P
    Figure US20050080603A1-20050414-P00812
    A@n
    ∀P:Π, A: Φ. P
    Figure US20050080603A1-20050414-P00812
    Figure US20050080603A1-20050414-P00807
    A
    iff ∀P′:Π. P|P′
    Figure US20050080603A1-20050414-P00812
    A
    ∀P:Π, A, B: Φ. P
    Figure US20050080603A1-20050414-P00812
    Figure US20050080603A1-20050414-P00807
    (A
    Figure US20050080603A1-20050414-P00804
    B)
    iff ∀P′:Π. P′|P
    Figure US20050080603A1-20050414-P00812
    A
    Figure US20050080603A1-20050414-P00804
    P′|P
    Figure US20050080603A1-20050414-P00812
    B
    (cf. P A
    Figure US20050080603A1-20050414-P00807
    B)
  • The derived logical connectives of the preceding table are read as follows:
      • No process satisfies the F formula.
      • A process satisfies the A
        Figure US20050080603A1-20050414-P00904
        B formula if and only if it satisfies both the A and the B formula.
      • A process satisfies the A
        Figure US20050080603A1-20050414-P00003
        B formula if and only if either it does not satisfy the A formula or it satisfies the B formula.
      • A process satisfies the A
        Figure US20050080603A1-20050414-P00004
        B formula if and only if it satisfies neither or both the A and B formulas.
      • A process P satisfies the A∥B formula if and only if for every decomposition of P into processes P′ and P″ such that P≡P′|P″, either P′ satisfies A or P″ satisfies B.
      • A process P satisfies the !A formula if and only if every parallel component P′ of P (such that P≡P′|P″, including P′=0) satisfies the A formula.
      • A process P satisfies the ?A formula if and only if there is a parallel component P′ of P (such that P≡P′|P″) that satisfies the A formula.
      • A process P satisfies the formula ∀n.A if and only if for every name m, P satisfies A{n←m}.
      • A process P satisfies the formula
        Figure US20050080603A1-20050414-P00905
        A if and only if A holds at every location P′ within P, where “sublocation” is defined by P⇓*P′.
      • A process P satisfies the formula □A if and only if A holds in the future for every residual P′ of P, where “residual” is defined by P→*P′.
      • A process P satisfies the formula A @ if and only if, when placed in any ambient n, the combination n[P] satisfies A.
      • A process P satisfies the formula
        Figure US20050080603A1-20050414-P00900
        A if and only if for every process (i.e., for every context) the combination of P and with that process satisfies A.
  • If and only if process P satisfies the formula A
    Figure US20050080603A1-20050414-P00900
    B, it means that in every context that satisfies A, the combination (of P and the context) satisfies B. Instead, if process P satisfies the formula
    Figure US20050080603A1-20050414-P00900
    (A
    Figure US20050080603A1-20050414-P00003
    B), it means that in every context, if and only if the combination satisfies A then the combination satisfies B.
  • The following proposition states that the satisfaction relation is invariant under structural congruence.
      • P≡P′
        Figure US20050080603A1-20050414-P00003
        (P
        Figure US20050080603A1-20050414-P00001
        A
        Figure US20050080603A1-20050414-P00003
        P′
        Figure US20050080603A1-20050414-P00001
        A)
  • A list of examples of the satisfaction relations is now provided. These examples should appear intuitively true from the definitions.
  • Location
      • n[ ]
        Figure US20050080603A1-20050414-P00001
        n[T]
      • n[ ]|0
        Figure US20050080603A1-20050414-P00001
        n[T], because n[ ]|0≡n[ ]
      • n[m[ ]]
        Figure US20050080603A1-20050414-P00001
        n[m[T]]
      • Figure US20050080603A1-20050414-P00901
        0
        Figure US20050080603A1-20050414-P00001
        n[T]
      • Figure US20050080603A1-20050414-P00901
        n[ ]
        Figure US20050080603A1-20050414-P00001
        m[T], if n≠m
  • Composition
      • n[ ]|m[ ]
        Figure US20050080603A1-20050414-P00001
        n[T]|m[T]
      • n[ ]|m[ ]
        Figure US20050080603A1-20050414-P00001
        m[T]|n[T], because n[ ]|m[ ]≡m[ ]|n[ ]
      • n[ ]|P
        Figure US20050080603A1-20050414-P00001
        n[T]|T
      • n[ ]
        Figure US20050080603A1-20050414-P00001
        n[T]|T, because n[ ]≡n[ ]|0
      • !n[ ]
        Figure US20050080603A1-20050414-P00001
        n[T]|T, because !n[ ]≡n[ ]|!n[ ]
      • Figure US20050080603A1-20050414-P00901
        n[ ]
        Figure US20050080603A1-20050414-P00001
        n[T]|n[T]
      • Figure US20050080603A1-20050414-P00901
        n[ ]|n[ ]
        Figure US20050080603A1-20050414-P00001
        n[T]
      • Figure US20050080603A1-20050414-P00901
        !n[ ]
        Figure US20050080603A1-20050414-P00001
        n[T]
      • Figure US20050080603A1-20050414-P00901
        n[ ]|open m
        Figure US20050080603A1-20050414-P00001
        n[T]
  • Quantification
      • n[ ]
        Figure US20050080603A1-20050414-P00001
        ∃m.m[T] iff ∃p.n[ ]
        Figure US20050080603A1-20050414-P00001
        p[T] iff n[ ]
        Figure US20050080603A1-20050414-P00001
        n[T] iff true
      • n[m[ ]]
        Figure US20050080603A1-20050414-P00001
        ∃n.n[n[T]] iff ∃p. n[m[ ]]
        Figure US20050080603A1-20050414-P00001
        p[p[T]] iff false
      • 0
        Figure US20050080603A1-20050414-P00001
        ∀n.
        Figure US20050080603A1-20050414-P00901
        n[T]
  • Spatial Modality
      • n[m[ ]]
        Figure US20050080603A1-20050414-P00001
        Figure US20050080603A1-20050414-P00002
        m[T]
      • Figure US20050080603A1-20050414-P00901
        n[m[ ]|m[ ]]
        Figure US20050080603A1-20050414-P00001
        Figure US20050080603A1-20050414-P00002
        m[T]
  • Temporal Modality
      • n[m[ ]]|open n
        Figure US20050080603A1-20050414-P00001
        ⋄m[T]
      • n[n[ ]]|open n
        Figure US20050080603A1-20050414-P00001
        □(n[T]|T)
  • Location Adjunct
      • n[ ]
        Figure US20050080603A1-20050414-P00001
        m[n[T]]@m
      • n[out m]
        Figure US20050080603A1-20050414-P00001
        (⋄n[T])@m
  • Composition Adjunct
      • n[ ]
        Figure US20050080603A1-20050414-P00001
        m[T]
        Figure US20050080603A1-20050414-P00900
        (n[T]|m[T])
      • open n.m[ ]
        Figure US20050080603A1-20050414-P00001
        (□n[T])
        Figure US20050080603A1-20050414-P00900
        (□m[T])
  • Presence
    an n
    Figure US20050080603A1-20050414-P00803
    n[T] | T
    (there is now an n here)
    no n
    Figure US20050080603A1-20050414-P00803
    Figure US20050080603A1-20050414-P00805
    an n
    (there is now no n here)
    one n
    Figure US20050080603A1-20050414-P00803
    n[T] | no n
    (there is now exactly one n here)
    unique n
    Figure US20050080603A1-20050414-P00803
    n[
    Figure US20050080603A1-20050414-P00810
    no n] |
    Figure US20050080603A1-20050414-P00810
    no n
    (there is now exactly one n,
    and it is here)
    !(n[T]
    Figure US20050080603A1-20050414-P00804
    n[A])
    (every n here satisfies A)

    Validity and Satisfiability:
  • It is noted that a formula is valid if it is satisfied by every process, and is satisfiable if it is satisfied by some process. This is summarized in the following table.
    vld A
    Figure US20050080603A1-20050414-P00803
    ∀P:Π. P
    Figure US20050080603A1-20050414-P00812
    A
    A is valid
    sat A
    Figure US20050080603A1-20050414-P00803
    ∃P:Π. P
    Figure US20050080603A1-20050414-P00812
    A
    A is satisfiable
  • From these definitions, the following are obtained:
      • vld A
        Figure US20050080603A1-20050414-P00003
        sat A
      • vld A
        Figure US20050080603A1-20050414-P00003
        Figure US20050080603A1-20050414-P00901
        sat
        Figure US20050080603A1-20050414-P00901
        A
      • vld (A
        Figure US20050080603A1-20050414-P00904
        B)
        Figure US20050080603A1-20050414-P00004
        vld A
        Figure US20050080603A1-20050414-P00904
        vld B
      • vld (A
        Figure US20050080603A1-20050414-P00904
        B)
        Figure US20050080603A1-20050414-P00004
        vld A
        Figure US20050080603A1-20050414-P00904
        vld B
  • Validity is used for modeling logical inference rules, as described in the next definition. A linearized notation is used for inference rules, where the usual horizontal bar separating antecedencts from consequents is written ‘/’, and ‘;’ is used to separate antecedents.
  • Definition (Sequents and Rules)
  • Sequents:
      • A├BΔvld(A
        Figure US20050080603A1-20050414-P00003
        B)
  • Rules:
      • A1├B1; . . . ; An├Bn/A├BΔ
        • A1├B1
          Figure US20050080603A1-20050414-P00904
          . . .
          Figure US20050080603A1-20050414-P00904
          An├Bn
          Figure US20050080603A1-20050414-P00003
          A├B (n≧0)
      • A1├B1//A2├B2 Δ
        • A1├B1/A2├B2
          Figure US20050080603A1-20050414-P00904
          A2├B2/A1├B1
          Inference Rules:
  • In this section, logical inference rules from the satisfaction relation are derived.
  • The following is a non-standard presentation of the sequent calculus, where each sequent has exactly one assumption and one conclusion: A├B. This presentation is adopted because the logical connectives introduced later do not preserve the shape of multiple-assumption multiple-conclusion sequents. Moreover, in this presentation the rules of propositional logic become extremely symmetrical. Propositional logic is summarized in the following table.
    (A-L) A
    Figure US20050080603A1-20050414-P00808
    (C
    Figure US20050080603A1-20050414-P00808
    D) ├ B // (A
    Figure US20050080603A1-20050414-P00808
    C)
    Figure US20050080603A1-20050414-P00808
    D ├ B
    (A-R) A ├ (C
    Figure US20050080603A1-20050414-P00806
    D)
    Figure US20050080603A1-20050414-P00806
    B // A ├ C
    Figure US20050080603A1-20050414-P00806
    (D
    Figure US20050080603A1-20050414-P00806
    B)
    (X-L) A
    Figure US20050080603A1-20050414-P00808
    C ├ B / C
    Figure US20050080603A1-20050414-P00808
    A ├ B
    (X-R) A ├ C
    Figure US20050080603A1-20050414-P00806
    B / A ├ B
    Figure US20050080603A1-20050414-P00806
    C
    (C-L) A
    Figure US20050080603A1-20050414-P00808
    A ├ B / A ├ B
    (C-R) A ├ B
    Figure US20050080603A1-20050414-P00806
    B / A ├ B
    (W-L) A ├ B / A
    Figure US20050080603A1-20050414-P00808
    C ├ B
    (W-R) A ├ B / A ├ C
    Figure US20050080603A1-20050414-P00806
    B
    (Id) / A ├ A
    (Cut) A ├ C
    Figure US20050080603A1-20050414-P00806
    B; A′
    Figure US20050080603A1-20050414-P00808
    C ├ B′ / A
    Figure US20050080603A1-20050414-P00808
    A′ ├ B
    Figure US20050080603A1-20050414-P00806
    B′
    (T) A
    Figure US20050080603A1-20050414-P00808
    T ├ B / A ├ B
    (F) A ├ F
    Figure US20050080603A1-20050414-P00806
    B / A ├ B
    (
    Figure US20050080603A1-20050414-P00805
    -L)
    A ├ C
    Figure US20050080603A1-20050414-P00806
    B / A
    Figure US20050080603A1-20050414-P00808
    Figure US20050080603A1-20050414-P00805
    C ├ B
    (
    Figure US20050080603A1-20050414-P00805
    -R)
    A
    Figure US20050080603A1-20050414-P00808
    C ├ B / A ├
    Figure US20050080603A1-20050414-P00805
    C
    Figure US20050080603A1-20050414-P00806
    B
    (
    Figure US20050080603A1-20050414-P00808
    )
    A ├ B; A′ ├ B′ / A
    Figure US20050080603A1-20050414-P00808
    A′ ├ B
    Figure US20050080603A1-20050414-P00808
    B′
    (
    Figure US20050080603A1-20050414-P00806
    )
    A ├ B; A′ ├ B′ / A
    Figure US20050080603A1-20050414-P00806
    A′ ├ B
    Figure US20050080603A1-20050414-P00806
    B′
  • The standard deduction rules of propositional logic, both for the sequent calculus and for natural deduction, are derivable from the rules of the preceding table, as can be appreciated by those of ordinary skill within the art. As usual, A
    Figure US20050080603A1-20050414-P00003
    B can be defined as
    Figure US20050080603A1-20050414-P00901
    A
    Figure US20050080603A1-20050414-P00902
    B.
  • For predicate logic the syntax of formulas (but not of processes) is enriched with variables ranging over names. These variables are indicated by letters x, y, z. Quantifiers bind variables, not names. Then, if ƒν(A)={xl, . . . , xk} are the free variables of A and φεƒν(A)→Λ is a substitution of variables for names, Aφ for A {x1←φ(xl), . . . , xk←φ(xk)} is written, and the following is defined:
      • vld AΔ∀P: Π. P
        Figure US20050080603A1-20050414-P00001
        Aφ
  • The following table summarizes quantifiers over names.
    (∀-L) A {x
    Figure US20050080603A1-20050414-P00813
    m} ├ B / ∀x. A ├ B
    (∀-R) A ├ B / A ├ ∀x.B Where x ∉ fv(A)
    (∃-L) A ├ B / ∃x. A ├ B Where x ∉ fv(B)
    (∃-R) A ├ B {x
    Figure US20050080603A1-20050414-P00813
    m} / A ├ ∃x.B
  • This leads to the following □, ⋄, and
    Figure US20050080603A1-20050414-P00002
    ,
    Figure US20050080603A1-20050414-P00002
    properties:
      • (1) vld(□(A
        Figure US20050080603A1-20050414-P00904
        B)
        Figure US20050080603A1-20050414-P00004
        A
        Figure US20050080603A1-20050414-P00904
        □B)
      • (2) vld(
        Figure US20050080603A1-20050414-P00905
        (A
        Figure US20050080603A1-20050414-P00904
        B)
        Figure US20050080603A1-20050414-P00004
        A
        Figure US20050080603A1-20050414-P00905
        A
        Figure US20050080603A1-20050414-P00904
        Figure US20050080603A1-20050414-P00905
        B)
      • (3) vld (□(A
        Figure US20050080603A1-20050414-P00902
        B)
        Figure US20050080603A1-20050414-P00004
        □A
        Figure US20050080603A1-20050414-P00902
        □B)
      • (4) vld (
        Figure US20050080603A1-20050414-P00002
        ((A
        Figure US20050080603A1-20050414-P00902
        B)
        Figure US20050080603A1-20050414-P00004
        Figure US20050080603A1-20050414-P00002
        A
        Figure US20050080603A1-20050414-P00902
        Figure US20050080603A1-20050414-P00002
        B)
  • In the following table, it is propositioned that □, ⋄, and
    Figure US20050080603A1-20050414-P00002
    ,
    Figure US20050080603A1-20050414-P00002
    are modal S4:
    (⋄) / T ├ ⋄A
    Figure US20050080603A1-20050414-P00809
    Figure US20050080603A1-20050414-P00805
    Figure US20050080603A1-20050414-P00805
    A
    (
    Figure US20050080603A1-20050414-P00810
    )
    / T ├
    Figure US20050080603A1-20050414-P00810
    A
    Figure US20050080603A1-20050414-P00809
    Figure US20050080603A1-20050414-P00805
    Figure US20050080603A1-20050414-P00810
    Figure US20050080603A1-20050414-P00805
    A
    (□K) / T ├ □(A
    Figure US20050080603A1-20050414-P00804
    B)
    Figure US20050080603A1-20050414-P00804
    (□A □B)
    (
    Figure US20050080603A1-20050414-P00810
    K)
    / T ├
    Figure US20050080603A1-20050414-P00810
    (A
    Figure US20050080603A1-20050414-P00804
    B)
    Figure US20050080603A1-20050414-P00804
    (
    Figure US20050080603A1-20050414-P00810
    A
    Figure US20050080603A1-20050414-P00804
    Figure US20050080603A1-20050414-P00810
    B)
    (□T) / T ├ □A
    Figure US20050080603A1-20050414-P00804
    A
    (
    Figure US20050080603A1-20050414-P00810
    T)
    / T ├
    Figure US20050080603A1-20050414-P00810
    A
    Figure US20050080603A1-20050414-P00804
    A
    (□4) / T ├ □A □□A (
    Figure US20050080603A1-20050414-P00810
    4)
    / T ├
    Figure US20050080603A1-20050414-P00810
    A
    Figure US20050080603A1-20050414-P00804
    Figure US20050080603A1-20050414-P00810
    Figure US20050080603A1-20050414-P00810
    A
    (□M) A ├ B / □A ├ □B (
    Figure US20050080603A1-20050414-P00810
    M)
    A ├ B /
    Figure US20050080603A1-20050414-P00810
    A ├
    Figure US20050080603A1-20050414-P00810
    B
    (□
    Figure US20050080603A1-20050414-P00808
    )
    □(A
    Figure US20050080603A1-20050414-P00808
    C) ├ B // □A
    Figure US20050080603A1-20050414-P00808
    □C ├ B
    (
    Figure US20050080603A1-20050414-P00810
    Figure US20050080603A1-20050414-P00808
    )
    Figure US20050080603A1-20050414-P00810
    (A
    Figure US20050080603A1-20050414-P00808
    C) ├ B //
    Figure US20050080603A1-20050414-P00810
    A
    Figure US20050080603A1-20050414-P00808
    Figure US20050080603A1-20050414-P00810
    C ├ B
    (□
    Figure US20050080603A1-20050414-P00806
    )
    A ├ □(C
    Figure US20050080603A1-20050414-P00806
    B) // A ├ □C
    Figure US20050080603A1-20050414-P00806
    □B
    (
    Figure US20050080603A1-20050414-P00810
    Figure US20050080603A1-20050414-P00806
    )
    A ├
    Figure US20050080603A1-20050414-P00810
    (C
    Figure US20050080603A1-20050414-P00806
    B) // A ├
    Figure US20050080603A1-20050414-P00810
    C
    Figure US20050080603A1-20050414-P00806
    Figure US20050080603A1-20050414-P00810
    B

    It is noted, that because

    Figure US20050080603A1-20050414-P00805
    vld ⋄A
    Figure US20050080603A1-20050414-P00804
    □⋄A

    Figure US20050080603A1-20050414-P00805
    vld
    Figure US20050080603A1-20050414-P00810
    A
    Figure US20050080603A1-20050414-P00804
    Figure US20050080603A1-20050414-P00810
    Figure US20050080603A1-20050414-P00811
    A

    the modalities are not S5.
  • Finally, location properties, location rules, composition properties, and composition rules are listed.
  • Location Properties
      • (1) vld(n[A
        Figure US20050080603A1-20050414-P00904
        B]
        Figure US20050080603A1-20050414-P00004
        n[A]
        Figure US20050080603A1-20050414-P00904
        n[B])
      • (2) vld(n[A
        Figure US20050080603A1-20050414-P00904
        B]
        Figure US20050080603A1-20050414-P00004
        n[A]
        Figure US20050080603A1-20050414-P00904
        n[B])
  • Location Rules
    (n[]) A ├ B // n[A] ├ n[B]
    (n[]
    Figure US20050080603A1-20050414-P00808
    )
    n[A
    Figure US20050080603A1-20050414-P00808
    C] ├ B // n[A]
    Figure US20050080603A1-20050414-P00808
    n[C] ├ B
    (n[]
    Figure US20050080603A1-20050414-P00808
    )
    A ├ n[C
    Figure US20050080603A1-20050414-P00806
    B] // A ├ n[C]
    Figure US20050080603A1-20050414-P00806
    n[B]
  • Composition Properties
      • (1) vld(A|B
        Figure US20050080603A1-20050414-P00003
        B|A)
      • (2) vld(A|(B|C)
        Figure US20050080603A1-20050414-P00004
        (A|B)|C)
      • (3) vld((A
        Figure US20050080603A1-20050414-P00904
        B)|C
        Figure US20050080603A1-20050414-P00003
        A|C
        Figure US20050080603A1-20050414-P00904
        B|C)
      • (4) vld((A
        Figure US20050080603A1-20050414-P00904
        B)|C
        Figure US20050080603A1-20050414-P00003
        A|C
        Figure US20050080603A1-20050414-P00904
        B|C)
  • Composition Rules
    (|) A′ ├ B′; A″ ├ B″ / A′ | A″ ├ B′ | B″
    (|
    Figure US20050080603A1-20050414-P00808
    )
    (A
    Figure US20050080603A1-20050414-P00808
    B) | C ├ D / A | C
    Figure US20050080603A1-20050414-P00808
    B|C ├ D
    (|
    Figure US20050080603A1-20050414-P00806
    )
    A ├ (B
    Figure US20050080603A1-20050414-P00806
    C) | D / A ├ B | D
    Figure US20050080603A1-20050414-P00806
    C | D
    (|□) / A′ | A″
    Figure US20050080603A1-20050414-P00808
    B′ ├ B″ ├ A′ | B″
    Figure US20050080603A1-20050414-P00806
    B′ | A″
    (|
    Figure US20050080603A1-20050414-P00805
    )
    /
    Figure US20050080603A1-20050414-P00805
    (A′ | A″)
    Figure US20050080603A1-20050414-P00808
    Figure US20050080603A1-20050414-P00805
    (B′ | B″) ├
    Figure US20050080603A1-20050414-P00805
    (B′ | A″)
    Figure US20050080603A1-20050414-P00806
    (
    Figure US20050080603A1-20050414-P00805
    A′ |
    Figure US20050080603A1-20050414-P00805
    B″)
    (|-E) A ├ B′ | B″; A′
    Figure US20050080603A1-20050414-P00808
    (B′ | C″) ├ D; A″
    Figure US20050080603A1-20050414-P00808
    (C′ | B″) ├ D
    / (A
    Figure US20050080603A1-20050414-P00808
    (A′
    Figure US20050080603A1-20050414-P00808
    A″))
    Figure US20050080603A1-20050414-P00808
    (C′ ├ C″) ├ D

    Adjunctions:
  • The following propositions and corollaries relate to location adjunct rules, and composition adjunct rules. The first proposition states that A@n and n[A] are adjuncts.
  • Proposition: Location Adjunct Rules
      • (n[ ]@) n[A]├B//A├B@n
  • Corollaries
      • (1) vld n[A@n]
        Figure US20050080603A1-20050414-P00003
        A
      • (2) vld A
        Figure US20050080603A1-20050414-P00003
        n[A]@n
  • Proposition: Composition Adjunct Rules
      • (|
        Figure US20050080603A1-20050414-P00900
        ) A|C├B//A├C
        Figure US20050080603A1-20050414-P00900
        B
  • Corollaries
      • (1) vld A
        Figure US20050080603A1-20050414-P00900
        B|B
        Figure US20050080603A1-20050414-P00003
        B
      • (2) vld A
        Figure US20050080603A1-20050414-P00003
        B
        Figure US20050080603A1-20050414-P00900
        (A B)
      • (3) vld A
        Figure US20050080603A1-20050414-P00900
        B|B
        Figure US20050080603A1-20050414-P00900
        C
        Figure US20050080603A1-20050414-P00003
        A
        Figure US20050080603A1-20050414-P00900
        C
        Reflecting Validity:
  • In this sub-section, validity and satisfiability are reflected into the logic, by means of the
    Figure US20050080603A1-20050414-P00900
    operator:
      • Vld AΔ(
        Figure US20050080603A1-20050414-P00901
        A)
        Figure US20050080603A1-20050414-P00900
        F
      • Sat AΔ
        Figure US20050080603A1-20050414-P00901
        (A
        Figure US20050080603A1-20050414-P00900
        F)
  • From this validity and satisfiability, two propositions and one lemma are described:
  • Proposition: Vld and Sat
      • (1) vld Vld A
        Figure US20050080603A1-20050414-P00004
        vld A
      • (2) vld Sat A
        Figure US20050080603A1-20050414-P00004
        sat A
  • Lemma: Vld, Sat Properties
      • (1) vld (Vld(A
        Figure US20050080603A1-20050414-P00904
        B)
        Figure US20050080603A1-20050414-P00004
        VldA
        Figure US20050080603A1-20050414-P00904
        VldB)
      • (2) vld (Vld(A
        Figure US20050080603A1-20050414-P00902
        B)
        Figure US20050080603A1-20050414-P00004
        VldA
        Figure US20050080603A1-20050414-P00902
        VldB)
  • Proposition: Vld, Sat is Modal S5
    (Sat) / T ├ SatA
    Figure US20050080603A1-20050414-P00809
    Figure US20050080603A1-20050414-P00805
    Vld
    Figure US20050080603A1-20050414-P00805
    A
    (Vld K) / T ├ Vld(A
    Figure US20050080603A1-20050414-P00804
    B)
    Figure US20050080603A1-20050414-P00804
    ((VldA)
    Figure US20050080603A1-20050414-P00804
    (VldB))
    (Vld T) / T ├ (VldA)
    Figure US20050080603A1-20050414-P00804
    A
    (Vld 5) / T ├ (SatA)
    Figure US20050080603A1-20050414-P00804
    (Vld Sat A)
    (Vld M) A ├ B / VldA ├ VldB
    (Vld
    Figure US20050080603A1-20050414-P00808
    )
    Vld(A
    Figure US20050080603A1-20050414-P00808
    C) ├ B // VldA
    Figure US20050080603A1-20050414-P00808
    VldC ├ B
    (Vld
    Figure US20050080603A1-20050414-P00806
    )
    A ├ Vld(C
    Figure US20050080603A1-20050414-P00806
    B) // A ├ VldC
    Figure US20050080603A1-20050414-P00806
    VldB

    Reflecting Name Equality
  • Finally, it is noted that it is possible to encode name equality within the logic in terms of validity. It is recalled that an nΔn[T]|T. One proposition then follows.
      • m=nΔVld(an m
        Figure US20050080603A1-20050414-P00900
        an n)
  • Proposition
      • vld m=n
        Figure US20050080603A1-20050414-P00004
        the names m and n are equal
    EXAMPLES
  • In this section of the detailed description, examples of mobile computing environments in conjunction with the modal logic of the preceding section are presented. Specifically, four separate situations are shown in the diagram of FIG. 4, and an additional situation is shown in the diagram of FIG. 5. Those of ordinary skill within the art can appreciate that the situations of FIGS. 4 and 5 are examples for illustrative purposes only, and do not represent a limitation on the invention.
  • Referring first to FIG. 4, four situations are presented, situations 400, 402, 404 and 406. In situation 400, a container n includes a process Q, and includes a policy telling the container how to behave. Specifically, the policy is in m.P, which instructs the container n including the process Q to move into the container m already having the policy R therein, as shown in situation 400. In situation 402, a container n includes a process Q, and the policy telling the container how to behave is out m.P, which instructs the container n including the process Q to move out of the container m also having the policy R therein, as shown. In situation 404, the policy or instruction open n.P is executed on the container n having the process Q, such that Q exits the container n as a result. Finally, in situation 406, a replicated instruction is executed on the process P, such that an additional process P is made (that is, process P is copied).
  • Referring next to FIG. 5, a communication operation referred to as a note is shown in the situation 500. The note can reside within a container. The capabilities that can be held by the note include names, such as n, as well as action capabilities, such as in n, out n, open n, or a path, such as C.C′, as has been described in the modal logic section of the detailed description.
  • Methods:
  • In this section of the detailed description, computer-implemented methods according to varying embodiments of the invention are presented. The methods make use of the modal logics described in the previous section of the detailed description, which are based on ambient calculus and provide for spatial relationships among processes of containers. The methods relate to a model-checking algorithm. The computer-implemented methods are desirably realized at least in part as one or more programs running on a computer—that is, as a program executed from a computer- or machine-readable medium such as a memory by a processor of a computer. The programs are desirably storable on a machine-readable medium such as a floppy disk or a CD-ROM, for distribution and installation and execution on another computer.
  • As described herein, the method references sub-methods norm, sublocation and reachable. In one embodiment of the invention, these sub-methods are implemented as described in a succeeding embodiment of the invention.
  • Referring now to FIG. 3, a flowchart of a method according to an embodiment of the invention is shown. In 300, a process is input. This is the process that is to be analyzed. The process may be a thread, an applet, an agent, etc.; the invention is not so limited. The process itself may be a composition of one or more processes. For example, the process can be the composition P|Q|R, where each of P, Q and R is a separate process. Again, the invention is not so limited.
  • 302, 304, 306, 308, 310, 312, and 314 implement the analysis of the process against a formula, using a predetermined modal logic based on ambient calculus, according to one embodiment of the invention. The formula against which the process is to be analyzed can be a policy, such as a security policy or a mobility policy, such that the policy is described using the predetermined modal logic, such as has been described in the preceding sections of the detailed description. In one embodiment, the process is analyzed in a recursive manner.
  • In 302 specifically, the process is analyzed in three ways, referred herein as an initial checking of the process against the formula. First, it is checked that Check(P,T)=T. This means that if the formula is T then the outcome of the analysis is T for any process. Second, it is checked that Check(P,
    Figure US20050080603A1-20050414-P00901
    A)=
    Figure US20050080603A1-20050414-P00901
    Check(P, A). This means that if the formula is a negation
    Figure US20050080603A1-20050414-P00901
    A then the outcome of the analysis is the negation of a recursive analysis of the process P against formula A. Third, it is checked that Check(P, A
    Figure US20050080603A1-20050414-P00902
    B)=Check(P, A)
    Figure US20050080603A1-20050414-P00902
    Check(P, B). This means that the outcome of the analysis is the disjunction of recursively checking the process P against formula A and checking the process P against formula B.
  • In 304 specifically, the process is normalized, and it is determined whether the process includes only one element, or entry. If there is more than one element, then the process fails against the policy. The check of 304 only applies if the formula is a location n[A]. This check can be expressed as: Check ( P , n [ A ] ) = { Check ( Q , A ) if Norm ( P ) = [ n [ Q ] ] for some Q F otherwise .
  • In 306 specifically, the process is partitioned to determine whether each component of the process satisfies the formula, or policy. If any component fails against the policy, then the process itself fails. The check of 306 only applies if the formula is a composition A|B. This check can be expressed as: Check ( P , A B ) = let [ π 1 , , π k ] = Norm ( P ) in { T if I , J . I J = 1. . k I J = ϕ Check ( i I π i , A ) Check ( j J π j , B ) F otherwise .
  • In 308 specifically, all of the names of the process are determined. Then, it is verified that a name exists for the formula that is unequal to any of the names of the process. If this verification fails, then the process itself fails against the policy. The check of 308 only applies if the formula is an existential quantification ∃x.A. This check can be expressed as: Check ( P , x . A ) = let { m 1 , , m k } = fn ( P ) fn ( A ) in let m 0 { m 1 , , m k } besome fresh name in { T if Check ( P , A { x m i } ) for some i 0 k . F otherwise
  • In one embodiment, a unification algorithm, as known within the art, can be used to effectuate the check of 308, to make the check more efficient. However, the invention is not so limited.
  • In 310 specifically, each sublocation of the process is checked, or analyzed, against the formula, or process. If the check fails for any sublocation, then the process itself fails against the policy. The check of 310 only applies if the formula is a somewhere modality ♦A. This check can be expressed as:
      • Check(P, ♦A)=let [P1, . . . , Pk]=SubLocations(P) in
        • T if Check(Pi, A) for some i ε1 . . . k
        • F otherwise
  • In 312 specifically, the spatial reach of the processed is checked, or analyzed, against the formula, or process. This check thus determines whether the process has a finite spatial reach. If the check fails, then the process itself fails against the policy. The check of 312 only applies if the formula is a sometime modality ⋄A. This check can be expressed as: Check ( P , A ) = let [ P 1 , , P k ] = Reachable ( P ) in { T if Check ( P i , A ) for some i 1 k . F otherwise
  • In 314 specifically, it is checked recursively that the process satisfies a formula when enclosed in a surrounding ambient. If the check fails, then the process itself fails against the policy. The check of 314 only applies if the formula is a location adjunct A@n. This can be expressed as: Check (P,A @n)=Check (n [P],A ).
  • It is to be appreciated that for all replication-free process P and
    Figure US20050080603A1-20050414-P00900
    -free closed formulas A, P
    Figure US20050080603A1-20050414-P00903
    A if and only if Check(P,A), wherein Check( ) corresponds to the 302, 304, 306, 308, 310, 312 and 314 above.
  • Finally, in 316, whether or not the process satisfied the formula, based on the analysis conducted in 302, 304, 306, 308, 310, 312 and 314, is output. The invention is not limited to the manner by which output is accomplished. For example, in one embodiment, it can be output to a further analysis program or software component that allows for analysis and conclusions to be drawn. As another example, the output can be displayed on a display device, or printed to a printer, etc. As a third example, output can mean storage to a storage device, for later and/or further analysis by a program or software component.
  • As can be appreciated by those of ordinary skill within the art, the above method can be effectuated by a system in one embodiment of the invention. That is, a system including a processor and a computer-readable medium, such that first data stored on the medium represents the process, and second data stored on the medium represents the formula. In such an instance, an analysis program is executed by the processor from the medium to analyze the process against the formula, for example, in a recursive manner.
  • Sub-Methods:
  • In this section of the detailed description, the sub-methods norm, reachable, and sublocations, as referenced in the previous section of the detailed description, are described, according to one embodiment of the invention. However, the invention is not so limited to the embodiment of this section.
  • First, the sub-method norm is described. Any replication-free process may be factored up to structural congruence into a normal form consisting of a composition of prime processes, where a prime process is an ambient, an action, an input, or an output.
  • In the following table, the prime processes are first defined. The normal form is stated in terms of the following notation: for processes P1, . . . , Pk, let the notation Πiε1 . . . kPi be short for the composition P1| . . . |Pk|0.
  • Prime processes, and normal forms:
    π ::= Prime process
     M[P] Ambient
     M.P for M ∈ {in N, out N, open N, n} Action
     (x).P Input
    Figure US20050080603A1-20050414-P00801
    M
    Figure US20050080603A1-20050414-P00802
    Ouput
    Πi∈1..kπi Replication-free normal form
  • Next, an algorithm is defined for computing normal forms. Given a process, the following function returns a list of primes, which represents a normal form of the process. The notation [π1, . . . , πk] is used for a list of primes. List concatenation is written as follows: [π1, . . . , πk]++[λ1′, . . . , πl′]=[π1, . . . , πk, π1′, . . . , πl′]. Then the notation Pε[P1, . . . , Pk] is used as a shorthand for Pε{P1, . . . , Pk}.
  • Computing a normal form of a replication-free process:
    Norm(M[P]) = [M[P]]
    Norm(0) = [ ]
    Norm(P|Q) = Norm(P)++Norm(Q)
    Norm(M.P) = Norm(P) if Head(M) = ∈
    Norm(M.P) = [M1.(M2.P)] if Head(M) = M1.M2
    Norm((x).P) = [(x).P]
    Norm(
    Figure US20050080603A1-20050414-P00801
    M
    Figure US20050080603A1-20050414-P00802
    ) = [
    Figure US20050080603A1-20050414-P00801
    M
    Figure US20050080603A1-20050414-P00802
    ]
  • Since all the recursive calls are on subprocesses of the original process, the algorithm always terminates. Moreover, if Norm (P)=[π1, . . . , πk] then P≡Πiε1 . . . kπi.
  • Next, the sub-method sublocations is described. An algorithmic characterization of the P⇓*P′ predicate is used, which is used in the definition of the spatial modality. Specifically, we define a procedure SubLocations(P) for computing representatives of all processes P′ such that P⇓*P′. The definition of SubLocations(P) depends on a subroutine Children(P), which computes representatives of all processes P′ such that P⇓P′.
  • Computing the children of a normal form is as follows:
      • Children([ ])=[ ] Children ( P Ps ) = { Q Children ( Ps ) if P = n [ Q ] Children ( Ps ) otherwise
  • The following lemma and proposition are then given as:
  • Lemma Suppose Children([π1, . . . πl])=[P1, . . . , Pk].
      • (1) For all iε1 . . . k, Πjε1 . . . lπj⇓Pi.
      • (2) If Πjε1 . . . lπj⇓Q then Q≡Pi for some iε1 . . . k.
  • Proposition Suppose Children (Norm (P))=[P1, . . . , Pk].
      • (1) For all iε1 . . . k,P⇓Pi.
      • (2) If P⇓Q then Q≡Pi for some iε1 . . . k.
  • Computing the sublocations of a process is then given as:
  • SubLocations (P)=let [P1, . . . , Pi]=Children (Norm (P)) in
        • [P]++SubLocations (P1)++ . . . ++SubLocations (Pk)
  • The following lemma is needed, however. Note that it cannot be generalized to the reflexive case, that is, where ⇓* is substituted for ⇓+.
      • Lemma If P′≡P, P⇓+Q, and Q≡Q′, then P′⇓+Q′.
  • A proposition is next given as,
      • Proposition Suppose SubLocations (P)=[P1, . . . , Pk].
      • (1) For all iε1 . . . k,P⇓*Pi.
      • (2) If P⇓*Q then Q≡Pi for some iε1 . . . k.
  • Finally, the sub-method reachable is described. Computing the sublocations of a process gives:
      • Reachable (P)=let [P1, . . . , Pk]=Next (P) in
        • [P]++Reachable (P1)++ . . . ++Reachable (Pk)
  • There is one lemma and one proposition associated with this,
      • Lemma If P′≡P, P→+Q, and Q≡Q′, then P′→+Q′.
      • Proposition Suppose Reachable(P)=[P1, . . . , Pk].
      • (1) For all iε1 . . . k,P→*Pi.
      • (2) If P→*Q then Q≡Pi for some iε1 . . . k.
        Conclusion:
  • Although specific embodiments have been illustrated and described herein, it will be appreciated by those of ordinary skill in the art that any arrangement which is calculated to achieve the same purpose may be substituted for the specific embodiments shown. This application is intended to cover any adaptations or variations of the present invention. Therefore, it is manifestly intended that this invention be limited only by the following claims and equivalents thereof.

Claims (40)

1. A computer-implemented method that facilitates ambient calculus-based modal logic model checking, comprising:
performing an analysis on an ambient calculus-based representation of a process with a formula that is represented via ambient calculus; and
outputting a result of the analysis that is utilized to facilitate determining whether the process satisfies the formula.
2. The method of claim 1, the analysis comprises one or more of an ambient calculus-based initial check; an ambient calculus-based process normalization; an ambient calculus-based process partition; an ambient calculus-based process name determination; an ambient calculus-based process sub-location check; an ambient calculus-based process spatial reach check; and an ambient calculus-based recursive check.
3. The method of claim 1, the analysis includes normalizing the process to determine whether the process comprises only a single element.
4. The method of claim 1, the analysis includes partitioning the process to determine whether each component of the process satisfies the formula.
5. The method of claim 1, the analysis includes determining process names and verifying a unique name exists for the formula.
6. The method of claim 5, the verification is facilitated via utilization of a unification algorithm.
7. The method of claim 1, the analysis includes checking process sub-locations with the formula.
8. The method of claim 1, the analysis includes checking process spatial reach with the formula to determine whether the process has a finite spatial reach.
9. The method of claim 1, the analysis includes a recursive check that determines whether the process satisfies the formula when enclosed in a surrounding ambient.
10. The system of claim 1, the process is a restriction-free process, wherein for all restriction-free processes P and
Figure US20050080603A1-20050414-P00900
-free closed formulas A, P
Figure US20050080603A1-20050414-P00903
A if and only if Check(P,A).
11. The system of claim 1, the result is utilized to facilitate fiuther processing, including one or more of an analysis by a program, a rendering to a display, a conveyance to a printer, storage to a storage medium, moving the process out of an ambient, moving the process into an ambient, and replicating the process.
12. A computer system that facilitates ambient calculus-based modal logic model checking, comprising:
a first component that receives a process for analysis, the process is transformed into an ambient calculus-based representation of the process;
a second component that analyzes the ambient calculus-based representation of the process with an ambient calculus-based representation of a formula via an ambient calculus-based modal logic model checking approach; and
a third component that provides a result of the analysis that includes information related to whether the process satisfies the formula.
13. The system of claim 12, further comprising a component that performs an initial check with the process and formula representations.
14. The system of claim 12, further comprising a component that normalizes the process representation to determine whether the process has only one element.
15. The system of claim 12, further comprising a component that partitions the process representation to determine whether each component of the process satisfies the formula.
16. The system of claim 12, further comprising a component that determines process names from the representation and verifies the formula has a unique name with respect to the process names.
17. The system of claim 12, further comprising a component that checks process sub-locations with the formula.
18. The system of claim 12, further comprising a component that checks process spatial reach with the formula to determine whether the process has a finite spatial reach.
19. The system of claim 12, further comprising a component that recursively checks whether the process satisfies the formula when enclosed in a surrounding ambient.
20. The system of claim 12, the result is displayed on a monitor, printed by a printer, further processed to generate another result, and/or stored in media.
21. The system of claim 12, the process is a one of a thread, an applet, and an agent.
22. The system of claim 12, the process comprises one or more sub-processes.
23. The system of claim 12, the formula is a policy that is verified.
24. The system of claim 12, the formula is a model that is checked.
25. The system of claim 12, the formula is one of a security policy and a mobility policy.
26. The system of claim 12, the formula describes how the process moves amongst various ambients.
27. The system of claim 12, the formula provides how the process executes on a particular machine.
28. The computer implemented method of claim 1 comprises one or more programs that are stored on machine-readable medium and that are available for distribution, installation and/or execution on a computer.
29. A method executed on a computer that facilitates model checking via ambient calculus-based modal logic, comprising:
matching a received process against a formula via ambient calculus; and
outputting whether the process satisfies the formula, based on the match, the output is utilized to facilitate execution of an action associated with the process.
30. The method of claim 29, the action is one of a move out of an ambient, a move into an ambient, and a replicate.
31. The method of claim 29, further comprising performing an initial check that includes at least one of the following ambient calculus-based checks:
Check(P,T)=T, which provides that the outcome of the analysis is T for any process when the formula is T;
Check(P,
Figure US20050080603A1-20050414-P00901
A)=
Figure US20050080603A1-20050414-P00901
Check(P,A), which means that if the formula is a negation
Figure US20050080603A1-20050414-P00901
A, then the outcome of the analysis is the negation of a recursive analysis of the process P against formula A; and
Check(P,A
Figure US20050080603A1-20050414-P00902
B)=Check(P,A)
Figure US20050080603A1-20050414-P00902
Check(P,B), which means that the outcome of the analysis is the disjunction of recursively checking the process P against formula A and checking the process Q against formula B.
32. The method of claim 29, further comprising normalizing the process when the formula is a location n[A].
33. The method of claim 29, further comprising partitioning the process when the formula is a composition A|B.
34. The method of claim 29, further comprising determining and verifying process names when the formula is an existential quantification ∃x.A.
35. The method of claim 29, further comprising checking process sub-locations when the formula is a somewhere modality ♦A.
36. The method of claim 29, further comprising checking process spatial reach when the formula is a sometime modality ⋄A.
37. The method of claim 29, the further comprising recursive checking when the formula is a location adjunct A@n.
38. A data packet transmitted between two or more computer components that facilitates model checking via ambient calculus-based modal logic, comprising:
an ambient calculus-based process that is analyzed against an ambient calculus-based formula, the analysis includes a model checking technique that facilitates determining whether the process satisfies the formula.
39. A computer readable medium storing computer executable components that facilitate model checking via ambient calculus-based modal logic, comprising:
a component that analyzes a representation of a process based on an ambient calculus model checking approach; and
a component that outputs a result that indicates whether the process satisfies the formula.
40. A system that facilitate model checking via ambient calculus-based modal logic, comprising:
means for representing a received process in an ambient calculus-based form;
means for comparing the ambient calculus-based form of the process with a formula represented in an ambient calculus-based form;
means for determining whether the process satisfies the formula; and
means for providing a corresponding result that facilitates handling the process.
US10/915,645 1999-03-18 2004-08-10 Ambient calculus-based modal logic model checking Abandoned US20050080603A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/915,645 US20050080603A1 (en) 1999-03-18 2004-08-10 Ambient calculus-based modal logic model checking

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US12501099P 1999-03-18 1999-03-18
US13260099P 1999-05-05 1999-05-05
US43022599A 1999-10-29 1999-10-29
US10/915,645 US20050080603A1 (en) 1999-03-18 2004-08-10 Ambient calculus-based modal logic model checking

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US43022599A Continuation-In-Part 1999-03-18 1999-10-29

Publications (1)

Publication Number Publication Date
US20050080603A1 true US20050080603A1 (en) 2005-04-14

Family

ID=34426761

Family Applications (3)

Application Number Title Priority Date Filing Date
US09/430,769 Expired - Lifetime US6826751B1 (en) 1999-03-18 1999-10-29 Ambient calculus-based modal logics for mobile ambients
US10/915,645 Abandoned US20050080603A1 (en) 1999-03-18 2004-08-10 Ambient calculus-based modal logic model checking
US10/929,742 Expired - Fee Related US7721335B2 (en) 1999-03-18 2004-08-30 Ambient calculus-based modal logics for mobile ambients

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US09/430,769 Expired - Lifetime US6826751B1 (en) 1999-03-18 1999-10-29 Ambient calculus-based modal logics for mobile ambients

Family Applications After (1)

Application Number Title Priority Date Filing Date
US10/929,742 Expired - Fee Related US7721335B2 (en) 1999-03-18 2004-08-30 Ambient calculus-based modal logics for mobile ambients

Country Status (1)

Country Link
US (3) US6826751B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090083832A1 (en) * 2007-09-20 2009-03-26 Microsoft Corporation Modal and linear techniques for access control logic

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6826751B1 (en) * 1999-03-18 2004-11-30 Microsoft Corporation Ambient calculus-based modal logics for mobile ambients
US20080271000A1 (en) * 2007-04-25 2008-10-30 Microsoft Corporation Predicting Conflicts in a Pervasive System
US8010560B2 (en) * 2007-12-21 2011-08-30 Microsoft Corporation Abducing assertion to support access query
US8607311B2 (en) * 2007-12-21 2013-12-10 Microsoft Corporation Delegation in logic-based access control
US8839344B2 (en) * 2008-01-28 2014-09-16 Microsoft Corporation Access policy analysis
US20230035594A1 (en) * 2021-08-02 2023-02-02 Dell Products L.P. Managing peripherals in a containerized environment

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5058033A (en) * 1989-08-18 1991-10-15 General Electric Company Real-time system for reasoning with uncertainty
US5748966A (en) * 1994-12-30 1998-05-05 The Trustees Of The University Of Pennsylvania Type error checker for type-free or polymorphic computer language
US6385765B1 (en) * 1996-07-02 2002-05-07 The Research Foundation Specification and verification for concurrent systems with graphical and textual editors
US6421667B1 (en) * 1996-06-11 2002-07-16 Edgar F. Codd Delta model processing logic representation and execution system
US6826751B1 (en) * 1999-03-18 2004-11-30 Microsoft Corporation Ambient calculus-based modal logics for mobile ambients
US7305336B2 (en) * 2002-08-30 2007-12-04 Fuji Xerox Co., Ltd. System and method for summarization combining natural language generation with structural analysis

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754782A (en) * 1995-12-04 1998-05-19 International Business Machines Corporation System and method for backing up and restoring groupware documents
US5781732A (en) * 1996-06-20 1998-07-14 Object Technology Licensing Corp. Framework for constructing shared documents that can be collaboratively accessed by multiple users

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5058033A (en) * 1989-08-18 1991-10-15 General Electric Company Real-time system for reasoning with uncertainty
US5748966A (en) * 1994-12-30 1998-05-05 The Trustees Of The University Of Pennsylvania Type error checker for type-free or polymorphic computer language
US6421667B1 (en) * 1996-06-11 2002-07-16 Edgar F. Codd Delta model processing logic representation and execution system
US6385765B1 (en) * 1996-07-02 2002-05-07 The Research Foundation Specification and verification for concurrent systems with graphical and textual editors
US6826751B1 (en) * 1999-03-18 2004-11-30 Microsoft Corporation Ambient calculus-based modal logics for mobile ambients
US7305336B2 (en) * 2002-08-30 2007-12-04 Fuji Xerox Co., Ltd. System and method for summarization combining natural language generation with structural analysis

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090083832A1 (en) * 2007-09-20 2009-03-26 Microsoft Corporation Modal and linear techniques for access control logic

Also Published As

Publication number Publication date
US6826751B1 (en) 2004-11-30
US7721335B2 (en) 2010-05-18
US20050043932A1 (en) 2005-02-24

Similar Documents

Publication Publication Date Title
Bojanczyk et al. Two-variable logic on words with data
Clark et al. Polynomial Identification in the Limit of Substitutable Context-free Languages.
McMillan Lazy abstraction with interpolants
US6324496B1 (en) Model checking of hierarchical state machines
Alur et al. Progress on reachability analysis of hybrid systems using predicate abstraction
Bultan et al. String analysis for software verification and security
Lierler Disjunctive answer set programming via satisfiability
Abdulla et al. A classification of the expressive power of well-structured transition systems
US20060130010A1 (en) Model checking with bounded context switches
US20050080603A1 (en) Ambient calculus-based modal logic model checking
Pujet et al. Impredicative observational equality
Mangal et al. Probabilistic lipschitz analysis of neural networks
Jones et al. Termination analysis of the untyped λ-calculus
Kupferman et al. Complementation constructions for nondeterministic automata on infinite words
Wöhrle et al. Model checking synchronized products of infinite transition systems
Fisman et al. Beyond regular model checking
Nguyen et al. Specifying and reasoning about CPS through the lens of the NIST CPS framework
Colcombet et al. On the use of guards for logics with data
Henzinger et al. Regular methods for operator precedence languages
Barner et al. Combining symmetry reduction and under-approximation for symbolic model checking
Bingham et al. Empirically efficient verification for a class of infinite-state systems
Balaban et al. Shape analysis of single-parent heaps
Dax et al. Mechanizing the powerset construction for restricted classes of ω-automata
Faran et al. LTL with Arithmetic and its Applications in Reasoning about Hierarchical Systems.
Zuck et al. Invisible invariants are neither

Legal Events

Date Code Title Description
AS Assignment

Owner name: MICROSOFT CORPORATION, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CARDELLI, LUCA;GORDON, ANDREW D.;REEL/FRAME:015427/0345

Effective date: 20041208

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO PAY ISSUE FEE

AS Assignment

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034766/0001

Effective date: 20141014