diff options
| author | krasimir <krasimir@chalmers.se> | 2010-03-21 19:01:57 +0000 |
|---|---|---|
| committer | krasimir <krasimir@chalmers.se> | 2010-03-21 19:01:57 +0000 |
| commit | f4574a4cfa97e8f501967cf86f33beaf105d0497 (patch) | |
| tree | adca1cd0dc2594f947273175ef5e9560aee68687 /examples/nqueens/NQueens.gf | |
| parent | 68840a3d6a745b0c98ee63e070afce22e10c3ba4 (diff) | |
the NQueens algorithm written in GF
Diffstat (limited to 'examples/nqueens/NQueens.gf')
| -rw-r--r-- | examples/nqueens/NQueens.gf | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/examples/nqueens/NQueens.gf b/examples/nqueens/NQueens.gf new file mode 100644 index 000000000..04aa96a80 --- /dev/null +++ b/examples/nqueens/NQueens.gf @@ -0,0 +1,19 @@ +abstract NQueens = Nat ** { + +cat Matrix Nat ; +cat Constr ; +cat Vec (s,l : Nat) Constr ; +cat Sat Nat Nat Constr ; + +data nilV : (s : Nat) -> (c : Constr) -> Vec s zero c ; + consV : (s,l : Nat) -> (j : Nat) -> (c : Constr) -> LT j s -> Sat j (succ zero) c -> Vec s l (consC j c) -> Vec s (succ l) c ; + + nilC : Constr ; + consC : (j : Nat) -> Constr -> Constr ; + + nilS : (j,d : Nat) -> Sat j d nilC ; + consS : (i,j : Nat) -> (d,dj,di : Nat) -> (c : Constr) -> NE i j -> Plus d j dj -> Plus d i di -> NE i dj -> NE di j -> Sat j (succ d) c -> Sat j d (consC i c) ; + + matrix : (s : Nat) -> Vec s s nilC -> Matrix s ; + +}
\ No newline at end of file |
