Procedures¶

A (potential) rule for courts to use in resolving litigation.
Described in terms of inputs and outputs, and also potentially “despite”
Factors, which occur when aRulecould be said to apply “even if” some “despite” factor is true.Users generally should not need to interact with this class directly, under the current design. Instead, they should interact with the class
Rule.- Parameters
outputs – an outcome that a court may accept based on the presence of the
inputsinputs – supporting
Factors in favor of theoutput. TheinputFactors are not treated as potential undercutters.despite –
Factors that do not prevent the court from imposing theoutput. These could be considered “failed undercutters” in defeasible logic. If aFactoris relevant both as support for the output and as a potential undercutter, include it in bothinputsanddespite.name – An identifier that can be used to reference and incorporate an existing procedure in a new
Factor, instead of constructing a new copy of theProcedure.absent – Whether the absence, rather than presence, of this
Procedureis being referenced. The usefulness of this is unclear, but I’m not prepared to eliminate it before theArgumentclass has been implemented and tested.generic – Whether the this
Procedureis being referenced as a generic example, which could be replaced by any otherProcedure.
Get input Factors as a FactorGroup.
- Return type
Get input Factors as a FactorGroup.
- Return type
Get despite Factors as a FactorGroup.
- Return type
Get input, output, and despite Factors as FactorGroups.
- Return type
Show how first Procedure triggers the second if not both are universal.
Show how first Procedure triggers the second if not both are universal.
Add two Procedures, given that they have already been found to be addable.
- Return type
Yield as much of the context as seems likely correct based on this Procedure.
- Return type
Yield explanations of contexts that allow combining these Procedures.
- Return type
Combine two
Procedures into one.The new
Procedurewill have all of theinputs,outputs, anddespiteFactors of bothselfandother.All of the context
Factors ofselfwill remain the same.
Get number of generic
Factors specified forself.- Returns
the number of generic
Factors that need to be specified for thisProcedure.
Return str(self).
Get
Factors ininputs,outputs, anddespite.
Get
Factors used in comparisons with otherFactors.- Return type
- Returns
a tuple of attributes that are designated as the
termsfor whichever subclass ofFactorcalls this method. These can be used for comparing objects usingconsistent_with()
Factors that can be replaced without changingselfs meaning.self.generic can’t be True for
Procedure.
Add an input
Factor.
Create new Procedure with added input
Factor.
Find if
selfapplying in some cases impliesothercannot apply in some.Raises an error because, by analogy with
Procedure.implies(), users might expect this method to returnTrueonly whenRulewithuniversal=Falseand Procedureselfwould contradict anotherRulewithuniversal=Falseand Procedureother. But that would never happen.- Return type
Find if
selfapplying in some cases impliesothercannot apply in all.
Check if every input of other implies some input or despite factor of self.
- Return type
Check if every input of other is implied by some input or despite factor of self.
- Return type
Explain why
othercan’t apply in all cases ifselfapplies in some.- Return type
Yield contexts establishing that if self is always valid, other is always valid.
- Return type
Find if
selfapplying in all cases impliesotherapplies in all.selfdoes not implyotherif any output ofotheris not equal to or implied by some output ofself.For
selfto implyother, every input ofselfmust be implied by some input ofother.selfdoes not implyotherif any despite ofothercontradicts()an input ofself.- Return type
- Returns
whether the assertion that
selfapplies in all cases implies thatotherapplies in all cases.
Yield contexts establishing that if self is always valid, other is sometimes valid.
- Return type
Find if
selfapplying in all cases impliesotherapplies in some.For
selfto implyother, every output ofothermust be equal to or implied by some output ofself.For
selfto implyother, every input ofselfmust not be contradicted by any input or despite ofother.selfdoes not implyotherif any “despite”Factors ofotherare not implied by inputs ofself.- Return type
- Returns
whether the assertion that
selfapplies in all cases implies thatotherapplies in some cases (that is, if the list ofself’s inputs is not considered an exhaustive list of the circumstances needed to invoke the procedure).
Find if
selfwould implyotherif they aren’t absent.When
selfandotherare included inRules that both apply in some cases:selfdoes not implyotherif any output ofotheris not equal to or implied by some output of self.selfdoes not implyotherif any input ofotheris not equal to or implied by some input ofself.selfdoes not implyotherif any despite ofotheris not equal to or implied by some despite or input ofself.- Return type
- Returns
whether the assertion that
selfapplies in some cases implies that theProcedureotherapplies in some cases.
Yield contexts that could cause self to have the same meaning as other.
- Return type
Determine whether
otherhas the same meaning asself.
Create new
Procedure, replacing keys ofchangeswith values.- Parameters
changes (
ContextRegister) – adictofFactors to replace matched to theFactors that should replace them- Return type
- Returns
new
Procedureobject, replacing keys ofchangeswith their values.
Set factors required to invoke this Procedure.
- Return type
Set factors that do not preclude application of this Procedure.
- Return type
Set the outputs of this Procedure.
- Return type
Test if
Factors from firingselfwould triggerother.Note
To be confident that
selfactually can triggerother, we would have to assume that self or other hasuniversal: Truesince otherwise there could be a mismatch between what is provided and what is needed to triggerother.
Get a procedure with all the inputs and outputs of self and other.
- Return type
Check if Procedure is suitable to be labeled the “exclusive” method to reach an output.
- Return type
list of weak references to the object (if defined)