File: isort.lisp

package info (click to toggle)
acl2 8.3dfsg-2
  • links: PTS
  • area: main
  • in suites: bullseye
  • size: 309,408 kB
  • sloc: lisp: 3,311,842; javascript: 22,569; cpp: 9,029; ansic: 7,872; perl: 6,501; xml: 3,838; java: 3,738; makefile: 3,383; ruby: 2,633; sh: 2,489; ml: 763; python: 741; yacc: 721; awk: 260; csh: 186; php: 171; lex: 154; tcl: 49; asm: 23; haskell: 17
file content (34 lines) | stat: -rw-r--r-- 679 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
; (certify-book "isort")

(in-package "ACL2")

(include-book "perm")
(include-book "ordered-perms")
(include-book "convert-perm-to-how-many")

(defun insert (e x)
       (if (endp x)
           (cons e x)
         (if (lexorder e (car x))
             (cons e x)
           (cons (car x)
                 (insert e (cdr x))))))

(defun isort (x)
       (if (endp x)
           nil
         (insert (car x)
                 (isort (cdr x)))))

(defthm orderedp-isort
       (orderedp (isort x)))

(defthm true-listp-isort
  (true-listp (isort x)))

(defthm how-many-isort
  (equal (how-many e (isort x))
         (how-many e x)))

; (defthm perm-isort
;        (perm (isort x) x))