*prevents* | *documentation* A very general Predicate. (*prevents* ?PROC1 ?PROC2) means that ?PROC1 *prevents* the occurrence of ?PROC2. In other words, if ?PROC1 is occurring in a particular *time* *and* place, ?PROC2 cannot occur at the same *time* *and* place. For example, innoculating *prevents* contracting disease. Note that this is a relation *between* types of Processes, *not* *between* instances | |

**has domain1** Process | |

**has domain2** Process | |

**is an ***instance* of BinaryPredicate | |

**is an ***instance* of IrreflexiveRelation | |

BinaryPredicate | **has axiom** (=> (*instance* ?REL BinaryPredicate) (*valence* ?REL 2))
| |

IrreflexiveRelation | **has axiom** (=> (*instance* ?REL IrreflexiveRelation) (forall (?INST) (*not* (*holds* ?REL ?INST ?INST))))
| |

BinaryRelation | **is first ***domain* of *DomainFn* | |

**is first ***domain* of *equivalenceRelationOn* | |

**is first ***domain* of *inverse* | |

**is first ***domain* of *irreflexiveOn* | |

**is first ***domain* of *partialOrderingOn* | |

**is first ***domain* of *RangeFn* | |

**is first ***domain* of *reflexiveOn* | |

**is first ***domain* of *totalOrderingOn* | |

**is first ***domain* of *trichotomizingOn* | |

**is second ***domain* of *inverse* | |

Predicate | **is first ***domain* of *singleValued* | |

Class | **is third ***domain* of *domain* | |

**is third ***domain* of *domainSubclass* | |

Abstract | **is ***disjoint* from Physical | |