Open Rules

Negative

Unmarked neighbouring pairs fail every listed relationship. The scope, direction and exceptions state exactly which pairs are covered.

Parameters

Parameter Meaning Default
relations The relationships to forbid, each with its operation and any required value. Required.
except The cell pairs exempt from the negative rule. Required.
within Groups limiting the pairs covered by the rule. Absent; no inferred value.
direction The chosen diagonal or neighbour orientation, as named in the definition. Absent; no inferred value.

Maths

Class: first-order.

The shared predicates define the notation and every named predicate.

∀a,b∈C: ∀r∈relations:
  cellIndex(a)<cellIndex(b) ∧ orth(a,b)
  ∧ (if present(within) then ∃G∈unwrap(within): a∈G ∧ b∈G else true)
  ∧ (if present(direction) then (unwrap(direction)="horizontal" ∧ row(a)=row(b)) ∨ (unwrap(direction)="vertical" ∧ col(a)=col(b)) else true)
  ∧ ¬(∃p∈except: |p|=2 ∧ {a,b}={p[0],p[1]})
  → ¬pairRelation(r,D(a),D(b))

Every orthogonally neighbouring pair in scope and outside except fails every listed relationHolds check over D digits. within limits pairs to a common listed group; direction limits their orientation. Either dot colour exempts the pair from both Kropki negatives when both share except.

The shift relation is defined for integer values.

Example

---
format: open-rules
title: Negative example
setter: Example
source: ""
case: ""
library: https://rules.sudoku-sleuth.com/
status: read
---

```rules
sudoku 9x9
negative relations [{"op":"difference","value":1}] except [] within [["r1c1","r1c2"]]
```

Satisfies the rule: r1c2=3, r1c1=1. The unmarked pair does not have forbidden difference 1.

Breaks the rule: r1c2=2, r1c1=1. The unmarked pair has forbidden difference 1.