Next: Relative, Previous: PartialAgreement, Up: Principles list
principle.projectivity
D
Projectivity
(priority 130)
This principle assumes that the Graph principle (Graph) is used
on dimension D
.
The operation of this principle depends on whether on D
, a
principle is used that introduces the yield
feature, i.e.,
typically an order principle. If the yield
feature is present,
then the principle states that for each node on D
, its
yield
set must be convex (i.e. without holes), otherwise, the
eqdown
set must be convex.
Here is the definition of the Projectivity
constraint functor:
%% Copyright 2001-2008 %% by Ralph Debusmann <rade@ps.uni-sb.de> (Saarland University) and %% Denys Duchier <duchier@ps.uni-sb.de> (LIFO, Orleans) and %% Jorge Marques Pelizzoni <jpeliz@icmc.usp.br> (ICMC, Sao Paulo) and %% Jochen Setz <info@jochensetz.de> (Saarland University) %% functor import % System(show) Helpers(checkModel) at 'Helpers.ozf' export Constraint define proc {Constraint Nodes G Principle FD FS Select} DVA2DIDA = Principle.dVA2DIDA %% DIDA = {DVA2DIDA 'D'} in %% check features if {Helpers.checkModel 'Projectivity.oz' Nodes [DIDA#eqdown]} then for Node in Nodes do if {HasFeature Node.DIDA.model yield} then {FS.int.convex Node.DIDA.model.yield} else {FS.int.convex Node.DIDA.model.eqdown} end end end end end