B  Sudoku axioms and solving puzzles

The next step in solving a Sudoku puzzle is building all of the axioms like the ones in section 3.

;; axioms : (listof axiom)
(define axioms  ...)

Hint: There should be 324 axioms in your list. You will need multiple helper functions and recursion on natural numbers to build that list.

Once you have the list, design these functions:

;; find-claim : claim-table (listof (listof claim)) --> assertion or false
;; find a variable that is definitely either true or false, by
;; attempting to apply the two rules of inference to each axiom
;; in axioms (the rules of inference are at the end of section 3)
;; If no more rules apply, returns false.
(define (find-claim table axioms) ...)

;; next : claim-table --> claim-table or false
;; uses find-claim and apply-assertion to compute an claim-table
;; with more information than the input table, if possible
(define (next table) ...)

;; solve : claim-table --> claim-table
;; solves a Sudoku puzzle by repeatedly calling next
;; until no more steps are possible.
(define (solve table) ...)

Hint: Do not use the solve function until you are sure the rest of the functions are working well. It may take several minutes to complete.