Next: In2, Previous: In, Up: Principles list
principle.in1
D
In: valency(label(D))
In: _.D.entry.in
In1 (priority 130)
This principle assumes that the Graph principle (Graph) is used
on dimension D.1
The In argument variable defines the incoming edge labels
cardinality specification.
Its default value is lexicalized by the lexical entry feature
in on D.
It stipulates for all nodes v that:
The In1 principle is symmetric to the Out principle (Out), and is now mostly superseded by the Valency principle (Valency1).
Here is the definition of the In1 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
prepare
RecordForAllInd = Record.forAllInd
define
proc {Constraint Nodes G Principle FD FS Select}
DVA2DIDA = Principle.dVA2DIDA
ArgRecProc = Principle.argRecProc
%%
DIDA = {DVA2DIDA 'D'}
in
%% check features
if {Helpers.checkModel 'In1.oz' Nodes
[DIDA#mothersL]} then
for Node in Nodes do
LAInMRec = {ArgRecProc 'In' o('_': Node)}
in
{RecordForAllInd LAInMRec
proc {$ LA InM}
%% |motherset_l(v)| in in_l(v)
CardMothersLD = {FS.card Node.DIDA.model.mothersL.LA}
in
{FS.include CardMothersLD InM}
end}
end
end
end
end