2
;;;;; Contains definition of matrix transpose and basis properties.
3
;;;;; Includes relations with mzero, madd, mid, mmult, and mentry.
6
(include-book "mdefthms")
9
(declare (xargs :guard (matrixp m)
13
(col-cons (row-car m) (mtrans (row-cdr m)))))
15
(defthm m-emptyp-mtrans
16
(equal (m-emptyp (mtrans m))
19
(defthm row-count-mtrans
21
(equal (row-count (mtrans m))
24
(defthm matrixp-mtrans
26
(matrixp (mtrans m))))
29
(defun col-cdr-recurse (m)
32
(col-cdr-recurse (col-cdr m)))))
34
(defthm col-count-mtrans
36
(equal (col-count (mtrans m))
38
:hints (("Subgoal *1/3"
39
:use (:instance col-count-def
40
(m (col-cons (row-car m)
41
(mtrans (row-cdr m))))))))
43
(verify-guards mtrans)
45
(defthm mtrans-by-col-def
51
(mtrans (col-cdr m))))))
52
:hints (("Goal" :induct (mtrans m)))
53
:rule-classes :definition)
57
(equal (mtrans (mtrans m))
60
(include-book "mzero")
63
(equal (mtrans (mzero r c))
69
(implies (and (matrixp m)
71
(equal (mtrans (m+ m n))
72
(m+ (mtrans m) (mtrans n))))
73
:hints (("Goal" :induct (m+ m n))))
78
(equal (mtrans (mid n))
81
(include-book "mscal")
85
(equal (mtrans (sm* s m))
88
(include-book "mmult")
91
(implies (row*-guard l m)
92
(equal (col* l (mtrans m))
96
(implies (col*-guard l m)
97
(equal (row* l (mtrans m))
101
(implies (m*-guard m n)
102
(equal (mtrans (m* m n))
103
(m* (mtrans n) (mtrans m))))
104
:hints (("Goal" :induct (m* m n))))
106
(include-book "mentry")
110
(equal (row i (mtrans m))
115
(equal (col i (mtrans m))
117
; :With directive added 3/14/06 by Matt Kaufmann for after v2-9-4.
118
:hints (("Goal" :expand (:with mtrans (mtrans m)))))
122
(equal (mentry r c (mtrans m))
124
:hints (("Subgoal *1/2.4'" :use (:instance row-by-col-def (i c)))))