| author | wenzelm |
| Thu, 07 Nov 2024 12:26:36 +0100 | |
| changeset 81384 | 6cb5ac3096fa |
| parent 80914 | d97fdabd9e2b |
| permissions | -rw-r--r-- |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
1 |
(* Title: HOL/Types_To_Sets/Examples/Linear_Algebra_On.thy |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
2 |
Author: Fabian Immler, TU München |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
3 |
*) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
4 |
theory Linear_Algebra_On |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
5 |
imports |
| 69295 | 6 |
"Prerequisites" |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
7 |
"../Types_To_Sets" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
8 |
Linear_Algebra_On_With |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
9 |
begin |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
10 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
11 |
subsection \<open>Rewrite rules to make \<open>ab_group_add\<close> operations implicit.\<close> |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
12 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
13 |
named_theorems implicit_ab_group_add |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
14 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
15 |
lemmas [implicit_ab_group_add] = sum_with[symmetric] |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
16 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
17 |
lemma semigroup_add_on_with_eq[implicit_ab_group_add]: |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
18 |
"semigroup_add_on_with S ((+)::_::semigroup_add \<Rightarrow> _) \<longleftrightarrow> (\<forall>a\<in>S. \<forall>b\<in>S. a + b \<in> S)" |
| 69295 | 19 |
by (simp add: semigroup_add_on_with_Ball_def ac_simps) |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
20 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
21 |
lemma ab_semigroup_add_on_with_eq[implicit_ab_group_add]: |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
22 |
"ab_semigroup_add_on_with S ((+)::_::ab_semigroup_add \<Rightarrow> _) = semigroup_add_on_with S (+)" |
| 69295 | 23 |
unfolding ab_semigroup_add_on_with_Ball_def |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
24 |
by (simp add: semigroup_add_on_with_eq ac_simps) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
25 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
26 |
lemma comm_monoid_add_on_with_eq[implicit_ab_group_add]: |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
27 |
"comm_monoid_add_on_with S ((+)::_::comm_monoid_add \<Rightarrow> _) 0 \<longleftrightarrow> semigroup_add_on_with S (+) \<and> 0 \<in> S" |
| 69295 | 28 |
unfolding comm_monoid_add_on_with_Ball_def |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
29 |
by (simp add: ab_semigroup_add_on_with_eq ac_simps) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
30 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
31 |
lemma ab_group_add_on_with[implicit_ab_group_add]: |
| 69296 | 32 |
"ab_group_add_on_with S ((+)::_::ab_group_add \<Rightarrow> _) 0 (-) uminus \<longleftrightarrow> |
33 |
comm_monoid_add_on_with S (+) 0 \<and> (\<forall>a\<in>S. -a\<in>S)" |
|
| 69295 | 34 |
unfolding ab_group_add_on_with_Ball_def |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
35 |
by simp |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
36 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
37 |
subsection \<open>Definitions \<^emph>\<open>on\<close> carrier set\<close> |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
38 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
39 |
locale module_on = |
|
80914
d97fdabd9e2b
standardize mixfix annotations via "isabelle update -a -u mixfix_cartouches" --- to simplify systematic editing;
wenzelm
parents:
69688
diff
changeset
|
40 |
fixes S and scale :: "'a::comm_ring_1 \<Rightarrow> 'b::ab_group_add \<Rightarrow> 'b" (infixr \<open>*s\<close> 75) |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
41 |
assumes scale_right_distrib_on [algebra_simps]: "x \<in> S \<Longrightarrow> y \<in> S \<Longrightarrow> a *s (x + y) = a *s x + a *s y" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
42 |
and scale_left_distrib_on [algebra_simps]: "x \<in> S \<Longrightarrow> (a + b) *s x = a *s x + b *s x" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
43 |
and scale_scale_on [simp]: "x \<in> S \<Longrightarrow> a *s (b *s x) = (a * b) *s x" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
44 |
and scale_one_on [simp]: "x \<in> S \<Longrightarrow> 1 *s x = x" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
45 |
and mem_add: "x \<in> S \<Longrightarrow> y \<in> S \<Longrightarrow> x + y \<in> S" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
46 |
and mem_zero: "0 \<in> S" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
47 |
and mem_scale: "x \<in> S \<Longrightarrow> a *s x \<in> S" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
48 |
begin |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
49 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
50 |
lemma S_ne: "S \<noteq> {}" using mem_zero by auto
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
51 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
52 |
lemma scale_minus_left_on: "scale (- a) x = - scale a x" if "x \<in> S" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
53 |
by (metis add_cancel_right_right scale_left_distrib_on neg_eq_iff_add_eq_0 that) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
54 |
|
| 69296 | 55 |
lemma mem_uminus: "x \<in> S \<Longrightarrow> -x \<in> S" |
56 |
by (metis mem_scale scale_minus_left_on scale_one_on) |
|
57 |
||
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
58 |
definition subspace :: "'b set \<Rightarrow> bool" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
59 |
where subspace_on_def: "subspace T \<longleftrightarrow> 0 \<in> T \<and> (\<forall>x\<in>T. \<forall>y\<in>T. x + y \<in> T) \<and> (\<forall>c. \<forall>x\<in>T. c *s x \<in> T)" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
60 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
61 |
definition span :: "'b set \<Rightarrow> 'b set" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
62 |
where span_on_def: "span b = {sum (\<lambda>a. r a *s a) t | t r. finite t \<and> t \<subseteq> b}"
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
63 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
64 |
definition dependent :: "'b set \<Rightarrow> bool" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
65 |
where dependent_on_def: "dependent s \<longleftrightarrow> (\<exists>t u. finite t \<and> t \<subseteq> s \<and> (sum (\<lambda>v. u v *s v) t = 0 \<and> (\<exists>v\<in>t. u v \<noteq> 0)))" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
66 |
|
|
69064
5840724b1d71
Prefix form of infix with * on either side no longer needs special treatment
nipkow
parents:
68620
diff
changeset
|
67 |
lemma implicit_subspace_with[implicit_ab_group_add]: "subspace_with (+) 0 (*s) = subspace" |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
68 |
unfolding subspace_on_def subspace_with_def .. |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
69 |
|
|
69064
5840724b1d71
Prefix form of infix with * on either side no longer needs special treatment
nipkow
parents:
68620
diff
changeset
|
70 |
lemma implicit_dependent_with[implicit_ab_group_add]: "dependent_with (+) 0 (*s) = dependent" |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
71 |
unfolding dependent_on_def dependent_with_def sum_with .. |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
72 |
|
|
69064
5840724b1d71
Prefix form of infix with * on either side no longer needs special treatment
nipkow
parents:
68620
diff
changeset
|
73 |
lemma implicit_span_with[implicit_ab_group_add]: "span_with (+) 0 (*s) = span" |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
74 |
unfolding span_on_def span_with_def sum_with .. |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
75 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
76 |
end |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
77 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
78 |
lemma implicit_module_on_with[implicit_ab_group_add]: |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
79 |
"module_on_with S (+) (-) uminus 0 = module_on S" |
| 69296 | 80 |
proof (intro ext iffI) |
81 |
fix s::"'a\<Rightarrow>'b\<Rightarrow>'b" assume "module_on S s" |
|
82 |
then interpret module_on S s . |
|
83 |
show "module_on_with S (+) (-) uminus 0 s" |
|
84 |
by (auto simp: module_on_with_def implicit_ab_group_add |
|
85 |
mem_add mem_zero mem_uminus scale_right_distrib_on scale_left_distrib_on mem_scale) |
|
86 |
qed (auto simp: module_on_with_def module_on_def implicit_ab_group_add) |
|
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
87 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
88 |
locale module_pair_on = m1: module_on S1 scale1 + |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
89 |
m2: module_on S2 scale2 |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
90 |
for S1:: "'b::ab_group_add set" and S2::"'c::ab_group_add set" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
91 |
and scale1::"'a::comm_ring_1 \<Rightarrow> _" and scale2::"'a \<Rightarrow> _" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
92 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
93 |
lemma implicit_module_pair_on_with[implicit_ab_group_add]: |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
94 |
"module_pair_on_with S1 S2 (+) (-) uminus 0 s1 (+) (-) uminus 0 s2 = module_pair_on S1 S2 s1 s2" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
95 |
unfolding module_pair_on_with_def implicit_module_on_with module_pair_on_def .. |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
96 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
97 |
locale module_hom_on = m1: module_on S1 s1 + m2: module_on S2 s2 |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
98 |
for S1 :: "'b::ab_group_add set" and S2 :: "'c::ab_group_add set" |
|
80914
d97fdabd9e2b
standardize mixfix annotations via "isabelle update -a -u mixfix_cartouches" --- to simplify systematic editing;
wenzelm
parents:
69688
diff
changeset
|
99 |
and s1 :: "'a::comm_ring_1 \<Rightarrow> 'b \<Rightarrow> 'b" (infixr \<open>*a\<close> 75) |
|
d97fdabd9e2b
standardize mixfix annotations via "isabelle update -a -u mixfix_cartouches" --- to simplify systematic editing;
wenzelm
parents:
69688
diff
changeset
|
100 |
and s2 :: "'a::comm_ring_1 \<Rightarrow> 'c \<Rightarrow> 'c" (infixr \<open>*b\<close> 75) + |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
101 |
fixes f :: "'b \<Rightarrow> 'c" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
102 |
assumes add: "\<And>b1 b2. b1 \<in> S1 \<Longrightarrow> b2 \<in> S1 \<Longrightarrow> f (b1 + b2) = f b1 + f b2" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
103 |
and scale: "\<And>b. b \<in> S1 \<Longrightarrow> f (r *a b) = r *b f b" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
104 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
105 |
lemma implicit_module_hom_on_with[implicit_ab_group_add]: |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
106 |
"module_hom_on_with S1 S2 (+) (-) uminus 0 s1 (+) (-) uminus 0 s2 = module_hom_on S1 S2 s1 s2" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
107 |
unfolding module_hom_on_with_def implicit_module_pair_on_with module_hom_on_def module_pair_on_def |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
108 |
module_hom_on_axioms_def |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
109 |
by (auto intro!: ext) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
110 |
|
|
68524
f5ca4c2157a5
avoid duplicate facts, the "trick" was copied without deeper motivation
immler
parents:
68522
diff
changeset
|
111 |
locale vector_space_on = module_on S scale |
|
80914
d97fdabd9e2b
standardize mixfix annotations via "isabelle update -a -u mixfix_cartouches" --- to simplify systematic editing;
wenzelm
parents:
69688
diff
changeset
|
112 |
for S and scale :: "'a::field \<Rightarrow> 'b::ab_group_add \<Rightarrow> 'b" (infixr \<open>*s\<close> 75) |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
113 |
begin |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
114 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
115 |
definition dim :: "'b set \<Rightarrow> nat" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
116 |
where "dim V = (if \<exists>b\<subseteq>S. \<not> dependent b \<and> span b = span V |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
117 |
then card (SOME b. b \<subseteq> S \<and> \<not> dependent b \<and> span b = span V) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
118 |
else 0)" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
119 |
|
|
69064
5840724b1d71
Prefix form of infix with * on either side no longer needs special treatment
nipkow
parents:
68620
diff
changeset
|
120 |
lemma implicit_dim_with[implicit_ab_group_add]: "dim_on_with S (+) 0 (*s) = dim" |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
121 |
unfolding dim_on_with_def dim_def implicit_ab_group_add .. |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
122 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
123 |
end |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
124 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
125 |
lemma vector_space_on_alt_def: "vector_space_on S = module_on S" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
126 |
unfolding vector_space_on_def module_on_def |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
127 |
by auto |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
128 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
129 |
lemma implicit_vector_space_on_with[implicit_ab_group_add]: |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
130 |
"vector_space_on_with S (+) (-) uminus 0 = vector_space_on S" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
131 |
unfolding vector_space_on_alt_def vector_space_on_def vector_space_on_with_def implicit_module_on_with .. |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
132 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
133 |
locale linear_on = module_hom_on S1 S2 s1 s2 f |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
134 |
for S1 S2 and s1::"'a::field \<Rightarrow> 'b \<Rightarrow> 'b::ab_group_add" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
135 |
and s2::"'a::field \<Rightarrow> 'c \<Rightarrow> 'c::ab_group_add" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
136 |
and f |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
137 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
138 |
lemma implicit_linear_on_with[implicit_ab_group_add]: |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
139 |
"linear_on_with S1 S2 (+) (-) uminus 0 s1 (+) (-) uminus 0 s2 = linear_on S1 S2 s1 s2" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
140 |
unfolding linear_on_with_def linear_on_def implicit_module_hom_on_with .. |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
141 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
142 |
locale finite_dimensional_vector_space_on = vector_space_on S scale for S scale + |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
143 |
fixes basis :: "'a set" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
144 |
assumes finite_Basis: "finite basis" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
145 |
and independent_Basis: "\<not> dependent basis" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
146 |
and span_Basis: "span basis = S" and basis_subset: "basis \<subseteq> S" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
147 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
148 |
locale vector_space_pair_on = m1: vector_space_on S1 scale1 + |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
149 |
m2: vector_space_on S2 scale2 |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
150 |
for S1:: "'b::ab_group_add set" and S2::"'c::ab_group_add set" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
151 |
and scale1::"'a::field \<Rightarrow> _" and scale2::"'a \<Rightarrow> _" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
152 |
|
|
68620
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
153 |
locale finite_dimensional_vector_space_pair_1_on = |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
154 |
vs1: finite_dimensional_vector_space_on S1 scale1 Basis1 + |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
155 |
vs2: vector_space_on S2 scale2 |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
156 |
for S1 S2 |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
157 |
and scale1::"'a::field \<Rightarrow> 'b::ab_group_add \<Rightarrow> 'b" |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
158 |
and scale2::"'a::field \<Rightarrow> 'c::ab_group_add \<Rightarrow> 'c" |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
159 |
and Basis1 |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
160 |
|
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
161 |
locale finite_dimensional_vector_space_pair_on = |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
162 |
vs1: finite_dimensional_vector_space_on S1 scale1 Basis1 + |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
163 |
vs2: finite_dimensional_vector_space_on S2 scale2 Basis2 |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
164 |
for S1 S2 |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
165 |
and scale1::"'a::field \<Rightarrow> 'b::ab_group_add \<Rightarrow> 'b" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
166 |
and scale2::"'a::field \<Rightarrow> 'c::ab_group_add \<Rightarrow> 'c" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
167 |
and Basis1 Basis2 |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
168 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
169 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
170 |
subsection \<open>Local Typedef for Subspace\<close> |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
171 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
172 |
locale local_typedef_module_on = module_on S scale |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
173 |
for S and scale::"'a::comm_ring_1\<Rightarrow>'b\<Rightarrow>'b::ab_group_add" and s::"'s itself" + |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
174 |
assumes Ex_type_definition_S: "\<exists>(Rep::'s \<Rightarrow> 'b) (Abs::'b \<Rightarrow> 's). type_definition Rep Abs S" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
175 |
begin |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
176 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
177 |
lemma mem_sum: "sum f X \<in> S" if "\<And>x. x \<in> X \<Longrightarrow> f x \<in> S" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
178 |
using that |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
179 |
by (induction X rule: infinite_finite_induct) (auto intro!: mem_zero mem_add) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
180 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
181 |
sublocale local_typedef S "TYPE('s)"
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
182 |
using Ex_type_definition_S by unfold_locales |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
183 |
|
| 69297 | 184 |
sublocale local_typedef_ab_group_add_on_with "(+)::'b\<Rightarrow>'b\<Rightarrow>'b" "0::'b" "(-)" uminus S "TYPE('s)"
|
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
185 |
using mem_zero mem_add mem_scale[of _ "-1"] |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
186 |
by unfold_locales (auto simp: scale_minus_left_on) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
187 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
188 |
context includes lifting_syntax begin |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
189 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
190 |
definition scale_S::"'a \<Rightarrow> 's \<Rightarrow> 's" where "scale_S = (id ---> rep ---> Abs) scale" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
191 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
192 |
lemma scale_S_transfer[transfer_rule]: "((=) ===> cr_S ===> cr_S) scale scale_S" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
193 |
unfolding scale_S_def |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
194 |
by (auto simp: cr_S_def mem_scale intro!: rel_funI) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
195 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
196 |
end |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
197 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
198 |
lemma type_module_on_with: "module_on_with UNIV plus_S minus_S uminus_S (zero_S::'s) scale_S" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
199 |
proof - |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
200 |
have "module_on_with {x. x \<in> S} (+) (-) uminus 0 scale"
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
201 |
using module_on_axioms |
| 69295 | 202 |
by (auto simp: module_on_with_def module_on_def ab_group_add_on_with_Ball_def |
| 69296 | 203 |
comm_monoid_add_on_with_Ball_def mem_uminus |
| 69295 | 204 |
ab_semigroup_add_on_with_Ball_def semigroup_add_on_with_def) |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
205 |
then show ?thesis |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
206 |
by transfer' |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
207 |
qed |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
208 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
209 |
lemma UNIV_transfer[transfer_rule]: "(rel_set cr_S) S UNIV" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
210 |
by (auto simp: rel_set_def cr_S_def) (metis Abs_inverse) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
211 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
212 |
end |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
213 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
214 |
context includes lifting_syntax begin |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
215 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
216 |
lemma Eps_unique_transfer_lemma: |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
217 |
"f' (Eps (\<lambda>x. Domainp A x \<and> f x)) = g' (Eps g)" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
218 |
if [transfer_rule]: "right_total A" "(A ===> (=)) f g" "(A ===> (=)) f' g'" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
219 |
and holds: "\<exists>x. Domainp A x \<and> f x" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
220 |
and unique_g: "\<And>x y. g x \<Longrightarrow> g y \<Longrightarrow> g' x = g' y" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
221 |
proof - |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
222 |
define Epsg where "Epsg = Eps g" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
223 |
have "\<exists>x. g x" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
224 |
by transfer (simp add: holds) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
225 |
then have "g Epsg" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
226 |
unfolding Epsg_def |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
227 |
by (rule someI_ex) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
228 |
obtain x where x[transfer_rule]: "A x Epsg" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
229 |
by (meson \<open>right_total A\<close> right_totalE) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
230 |
then have "Domainp A x" by auto |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
231 |
from \<open>g Epsg\<close>[untransferred] have "f x" . |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
232 |
from unique_g have unique: |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
233 |
"\<And>x y. Domainp A x \<Longrightarrow> Domainp A y \<Longrightarrow> f x \<Longrightarrow> f y \<Longrightarrow> f' x = f' y" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
234 |
by transfer |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
235 |
have "f' (Eps (\<lambda>x. Domainp A x \<and> f x)) = f' x" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
236 |
apply (rule unique[OF _ \<open>Domainp A x\<close> _ \<open>f x\<close>]) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
237 |
apply (metis (mono_tags, lifting) local.holds someI_ex) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
238 |
apply (metis (mono_tags, lifting) local.holds someI_ex) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
239 |
done |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
240 |
show "f' (SOME x. Domainp A x \<and> f x) = g' (Eps g)" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
241 |
using x \<open>f' (Eps _) = f' x\<close> Epsg_def |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
242 |
using rel_funE that(3) by fastforce |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
243 |
qed |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
244 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
245 |
end |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
246 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
247 |
locale local_typedef_vector_space_on = local_typedef_module_on S scale s + vector_space_on S scale |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
248 |
for S and scale::"'a::field\<Rightarrow>'b\<Rightarrow>'b::ab_group_add" and s::"'s itself" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
249 |
begin |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
250 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
251 |
lemma type_vector_space_on_with: "vector_space_on_with UNIV plus_S minus_S uminus_S (zero_S::'s) scale_S" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
252 |
using type_module_on_with |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
253 |
by (auto simp: vector_space_on_with_def) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
254 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
255 |
context includes lifting_syntax begin |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
256 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
257 |
definition dim_S::"'s set \<Rightarrow> nat" where "dim_S = dim_on_with UNIV plus_S zero_S scale_S" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
258 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
259 |
lemma transfer_dim[transfer_rule]: "(rel_set cr_S ===> (=)) dim dim_S" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
260 |
proof (rule rel_funI) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
261 |
fix V V' |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
262 |
assume [transfer_rule]: "rel_set cr_S V V'" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
263 |
then have subset: "V \<subseteq> S" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
264 |
by (auto simp: rel_set_def cr_S_def) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
265 |
then have "span V \<subseteq> S" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
266 |
by (auto simp: span_on_def intro!: mem_sum mem_scale) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
267 |
note type_dim_eq_card = |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
268 |
vector_space.dim_eq_card[var_simplified explicit_ab_group_add, unoverload_type 'd, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
269 |
OF type.ab_group_add_axioms type_vector_space_on_with] |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
270 |
have *: "(\<exists>b\<subseteq>UNIV. \<not> dependent_with plus_S zero_S scale_S b \<and> span_with plus_S zero_S scale_S b = span_with plus_S zero_S scale_S V') \<longleftrightarrow> |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
271 |
(\<exists>b\<subseteq>S. \<not> local.dependent b \<and> local.span b = local.span V)" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
272 |
unfolding subset_iff |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
273 |
by transfer (simp add: implicit_ab_group_add Ball_def) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
274 |
have **[symmetric]: |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
275 |
"card (SOME b. Domainp (rel_set cr_S) b \<and> (\<not> dependent_with (+) 0 scale b \<and> span_with (+) 0 scale b = span_with (+) 0 scale V)) = |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
276 |
card (SOME b. \<not> dependent_with plus_S zero_S scale_S b \<and> span_with plus_S zero_S scale_S b = span_with plus_S zero_S scale_S V')" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
277 |
if "b \<subseteq> S" "\<not>dependent b" "span b = span V" for b |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
278 |
apply (rule Eps_unique_transfer_lemma[where f'=card and g'=card]) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
279 |
subgoal by (rule right_total_rel_set) (rule transfer_raw) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
280 |
subgoal by transfer_prover |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
281 |
subgoal by transfer_prover |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
282 |
subgoal using that by (auto simp: implicit_ab_group_add Domainp_set Domainp_cr_S) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
283 |
subgoal premises prems for b c |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
284 |
proof - |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
285 |
from type_dim_eq_card[of b V'] type_dim_eq_card[of c V'] prems |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
286 |
show ?thesis by simp |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
287 |
qed |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
288 |
done |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
289 |
show "local.dim V = dim_S V'" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
290 |
unfolding dim_def dim_S_def * dim_on_with_def |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
291 |
by (auto simp: ** Domainp_set Domainp_cr_S implicit_ab_group_add subset_eq) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
292 |
qed |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
293 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
294 |
end |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
295 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
296 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
297 |
end |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
298 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
299 |
locale local_typedef_finite_dimensional_vector_space_on = local_typedef_vector_space_on S scale s + |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
300 |
finite_dimensional_vector_space_on S scale Basis |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
301 |
for S and scale::"'a::field\<Rightarrow>'b\<Rightarrow>'b::ab_group_add" and Basis and s::"'s itself" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
302 |
begin |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
303 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
304 |
definition "Basis_S = Abs ` Basis" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
305 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
306 |
lemma Basis_S_transfer[transfer_rule]: "rel_set cr_S Basis Basis_S" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
307 |
using Abs_inverse rep_inverse basis_subset |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
308 |
by (force simp: rel_set_def Basis_S_def cr_S_def) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
309 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
310 |
lemma type_finite_dimensional_vector_space_on_with: |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
311 |
"finite_dimensional_vector_space_on_with UNIV plus_S minus_S uminus_S zero_S scale_S Basis_S" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
312 |
proof - |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
313 |
have "finite Basis_S" by transfer (rule finite_Basis) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
314 |
moreover have "\<not> dependent_with plus_S zero_S scale_S Basis_S" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
315 |
by transfer (simp add: implicit_dependent_with independent_Basis) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
316 |
moreover have "span_with plus_S zero_S scale_S Basis_S = UNIV" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
317 |
by transfer (simp add: implicit_span_with span_Basis) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
318 |
ultimately show ?thesis |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
319 |
using type_vector_space_on_with |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
320 |
by (auto simp: finite_dimensional_vector_space_on_with_def) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
321 |
qed |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
322 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
323 |
end |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
324 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
325 |
locale local_typedef_module_pair = |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
326 |
lt1: local_typedef_module_on S1 scale1 s + |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
327 |
lt2: local_typedef_module_on S2 scale2 t |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
328 |
for S1::"'b::ab_group_add set" and scale1::"'a::comm_ring_1 \<Rightarrow> 'b \<Rightarrow> 'b" and s::"'s itself" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
329 |
and S2::"'c::ab_group_add set" and scale2::"'a \<Rightarrow> 'c \<Rightarrow> 'c" and t::"'t itself" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
330 |
begin |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
331 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
332 |
lemma type_module_pair_on_with: |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
333 |
"module_pair_on_with UNIV UNIV lt1.plus_S lt1.minus_S lt1.uminus_S (lt1.zero_S::'s) lt1.scale_S |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
334 |
lt2.plus_S lt2.minus_S lt2.uminus_S (lt2.zero_S::'t) lt2.scale_S" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
335 |
by (simp add: lt1.type_module_on_with lt2.type_module_on_with module_pair_on_with_def) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
336 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
337 |
end |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
338 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
339 |
locale local_typedef_vector_space_pair = |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
340 |
local_typedef_module_pair S1 scale1 s S2 scale2 t |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
341 |
for S1::"'b::ab_group_add set" and scale1::"'a::field \<Rightarrow> 'b \<Rightarrow> 'b" and s::"'s itself" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
342 |
and S2::"'c::ab_group_add set" and scale2::"'a \<Rightarrow> 'c \<Rightarrow> 'c" and t::"'t itself" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
343 |
begin |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
344 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
345 |
lemma type_vector_space_pair_on_with: |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
346 |
"vector_space_pair_on_with UNIV UNIV lt1.plus_S lt1.minus_S lt1.uminus_S (lt1.zero_S::'s) lt1.scale_S |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
347 |
lt2.plus_S lt2.minus_S lt2.uminus_S (lt2.zero_S::'t) lt2.scale_S" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
348 |
by (simp add: type_module_pair_on_with vector_space_pair_on_with_def) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
349 |
|
|
68620
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
350 |
sublocale lt1: local_typedef_vector_space_on S1 scale1 s by unfold_locales |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
351 |
sublocale lt2: local_typedef_vector_space_on S2 scale2 t by unfold_locales |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
352 |
|
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
353 |
end |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
354 |
|
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
355 |
locale local_typedef_finite_dimensional_vector_space_pair_1 = |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
356 |
lt1: local_typedef_finite_dimensional_vector_space_on S1 scale1 Basis1 s + |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
357 |
lt2: local_typedef_vector_space_on S2 scale2 t |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
358 |
for S1::"'b::ab_group_add set" and scale1::"'a::field \<Rightarrow> 'b \<Rightarrow> 'b" and Basis1 and s::"'s itself" |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
359 |
and S2::"'c::ab_group_add set" and scale2::"'a \<Rightarrow> 'c \<Rightarrow> 'c" and t::"'t itself" |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
360 |
begin |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
361 |
|
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
362 |
lemma type_finite_dimensional_vector_space_pair_1_on_with: |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
363 |
"finite_dimensional_vector_space_pair_1_on_with UNIV UNIV lt1.plus_S lt1.minus_S lt1.uminus_S (lt1.zero_S::'s) lt1.scale_S lt1.Basis_S |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
364 |
lt2.plus_S lt2.minus_S lt2.uminus_S (lt2.zero_S::'t) lt2.scale_S" |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
365 |
by (simp add: finite_dimensional_vector_space_pair_1_on_with_def |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
366 |
lt1.type_finite_dimensional_vector_space_on_with lt2.type_vector_space_on_with) |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
367 |
|
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
368 |
end |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
369 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
370 |
locale local_typedef_finite_dimensional_vector_space_pair = |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
371 |
lt1: local_typedef_finite_dimensional_vector_space_on S1 scale1 Basis1 s + |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
372 |
lt2: local_typedef_finite_dimensional_vector_space_on S2 scale2 Basis2 t |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
373 |
for S1::"'b::ab_group_add set" and scale1::"'a::field \<Rightarrow> 'b \<Rightarrow> 'b" and Basis1 and s::"'s itself" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
374 |
and S2::"'c::ab_group_add set" and scale2::"'a \<Rightarrow> 'c \<Rightarrow> 'c" and Basis2 and t::"'t itself" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
375 |
begin |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
376 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
377 |
lemma type_finite_dimensional_vector_space_pair_on_with: |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
378 |
"finite_dimensional_vector_space_pair_on_with UNIV UNIV lt1.plus_S lt1.minus_S lt1.uminus_S (lt1.zero_S::'s) lt1.scale_S lt1.Basis_S |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
379 |
lt2.plus_S lt2.minus_S lt2.uminus_S (lt2.zero_S::'t) lt2.scale_S lt2.Basis_S" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
380 |
by (simp add: finite_dimensional_vector_space_pair_on_with_def |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
381 |
lt1.type_finite_dimensional_vector_space_on_with |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
382 |
lt2.type_finite_dimensional_vector_space_on_with) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
383 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
384 |
end |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
385 |
|
|
68620
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
386 |
|
| 69597 | 387 |
subsection \<open>Transfer from type-based \<^theory>\<open>HOL.Modules\<close> and \<^theory>\<open>HOL.Vector_Spaces\<close>\<close> |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
388 |
|
| 69295 | 389 |
lemmas [transfer_rule] = right_total_fun_eq_transfer |
390 |
and [transfer_rule del] = vimage_parametric |
|
391 |
||
392 |
subsubsection \<open>Modules\<close> |
|
393 |
||
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
394 |
context module_on begin |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
395 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
396 |
context includes lifting_syntax assumes ltd: "\<exists>(Rep::'s \<Rightarrow> 'b) (Abs::'b \<Rightarrow> 's). type_definition Rep Abs S" begin |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
397 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
398 |
interpretation local_typedef_module_on S scale "TYPE('s)" by unfold_locales fact
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
399 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
400 |
text\<open>Get theorem names:\<close> |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
401 |
print_locale! module |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
402 |
text\<open>Then replace: |
| 69096 | 403 |
\<^verbatim>\<open>notes[^"]*"([^"]*).*\<close> |
404 |
with |
|
405 |
\<^verbatim>\<open>$1 = module.$1\<close> |
|
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
406 |
\<close> |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
407 |
text \<open>TODO: automate systematic naming!\<close> |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
408 |
lemmas_with [var_simplified explicit_ab_group_add, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
409 |
unoverload_type 'd, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
410 |
OF type.ab_group_add_axioms type_module_on_with, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
411 |
untransferred, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
412 |
var_simplified implicit_ab_group_add]: |
|
68524
f5ca4c2157a5
avoid duplicate facts, the "trick" was copied without deeper motivation
immler
parents:
68522
diff
changeset
|
413 |
lt_scale_left_commute = module.scale_left_commute |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
414 |
and lt_scale_zero_left = module.scale_zero_left |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
415 |
and lt_scale_minus_left = module.scale_minus_left |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
416 |
and lt_scale_left_diff_distrib = module.scale_left_diff_distrib |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
417 |
and lt_scale_sum_left = module.scale_sum_left |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
418 |
and lt_scale_zero_right = module.scale_zero_right |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
419 |
and lt_scale_minus_right = module.scale_minus_right |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
420 |
and lt_scale_right_diff_distrib = module.scale_right_diff_distrib |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
421 |
and lt_scale_sum_right = module.scale_sum_right |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
422 |
and lt_sum_constant_scale = module.sum_constant_scale |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
423 |
and lt_subspace_def = module.subspace_def |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
424 |
and lt_subspaceI = module.subspaceI |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
425 |
and lt_subspace_single_0 = module.subspace_single_0 |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
426 |
and lt_subspace_0 = module.subspace_0 |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
427 |
and lt_subspace_add = module.subspace_add |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
428 |
and lt_subspace_scale = module.subspace_scale |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
429 |
and lt_subspace_neg = module.subspace_neg |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
430 |
and lt_subspace_diff = module.subspace_diff |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
431 |
and lt_subspace_sum = module.subspace_sum |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
432 |
and lt_subspace_inter = module.subspace_inter |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
433 |
and lt_span_explicit = module.span_explicit |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
434 |
and lt_span_explicit' = module.span_explicit' |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
435 |
and lt_span_finite = module.span_finite |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
436 |
and lt_span_induct_alt = module.span_induct_alt |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
437 |
and lt_span_mono = module.span_mono |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
438 |
and lt_span_base = module.span_base |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
439 |
and lt_span_superset = module.span_superset |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
440 |
and lt_span_zero = module.span_zero |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
441 |
and lt_span_add = module.span_add |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
442 |
and lt_span_scale = module.span_scale |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
443 |
and lt_subspace_span = module.subspace_span |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
444 |
and lt_span_neg = module.span_neg |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
445 |
and lt_span_diff = module.span_diff |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
446 |
and lt_span_sum = module.span_sum |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
447 |
and lt_span_minimal = module.span_minimal |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
448 |
and lt_span_unique = module.span_unique |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
449 |
and lt_span_subspace_induct = module.span_subspace_induct |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
450 |
and lt_span_induct = module.span_induct |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
451 |
and lt_span_empty = module.span_empty |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
452 |
and lt_span_subspace = module.span_subspace |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
453 |
and lt_span_span = module.span_span |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
454 |
and lt_span_add_eq = module.span_add_eq |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
455 |
and lt_span_add_eq2 = module.span_add_eq2 |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
456 |
and lt_span_singleton = module.span_singleton |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
457 |
and lt_span_Un = module.span_Un |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
458 |
and lt_span_insert = module.span_insert |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
459 |
and lt_span_breakdown = module.span_breakdown |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
460 |
and lt_span_breakdown_eq = module.span_breakdown_eq |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
461 |
and lt_span_clauses = module.span_clauses |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
462 |
and lt_span_eq_iff = module.span_eq_iff |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
463 |
and lt_span_eq = module.span_eq |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
464 |
and lt_eq_span_insert_eq = module.eq_span_insert_eq |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
465 |
and lt_dependent_explicit = module.dependent_explicit |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
466 |
and lt_dependent_mono = module.dependent_mono |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
467 |
and lt_independent_mono = module.independent_mono |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
468 |
and lt_dependent_zero = module.dependent_zero |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
469 |
and lt_independent_empty = module.independent_empty |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
470 |
and lt_independent_explicit_module = module.independent_explicit_module |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
471 |
and lt_independentD = module.independentD |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
472 |
and lt_independent_Union_directed = module.independent_Union_directed |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
473 |
and lt_dependent_finite = module.dependent_finite |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
474 |
and lt_independentD_alt = module.independentD_alt |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
475 |
and lt_independentD_unique = module.independentD_unique |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
476 |
and lt_spanning_subset_independent = module.spanning_subset_independent |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
477 |
and lt_module_hom_scale_self = module.module_hom_scale_self |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
478 |
and lt_module_hom_scale_left = module.module_hom_scale_left |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
479 |
and lt_module_hom_id = module.module_hom_id |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
480 |
and lt_module_hom_ident = module.module_hom_ident |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
481 |
and lt_module_hom_uminus = module.module_hom_uminus |
| 68525 | 482 |
and lt_subspace_UNIV = module.subspace_UNIV |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
483 |
(* should work but don't: |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
484 |
and span_def = module.span_def |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
485 |
and span_UNIV = module.span_UNIV |
| 68525 | 486 |
and lt_span_alt = module.span_alt |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
487 |
and dependent_alt = module.dependent_alt |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
488 |
and independent_alt = module.independent_alt |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
489 |
and unique_representation = module.unique_representation |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
490 |
and subspace_Int = module.subspace_Int |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
491 |
and subspace_Inter = module.subspace_Inter |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
492 |
*) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
493 |
(* not expected to work: |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
494 |
and representation_ne_zero = module.representation_ne_zero |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
495 |
and representation_ne_zero = module.representation_ne_zero |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
496 |
and finite_representation = module.finite_representation |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
497 |
and sum_nonzero_representation_eq = module.sum_nonzero_representation_eq |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
498 |
and sum_representation_eq = module.sum_representation_eq |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
499 |
and representation_eqI = module.representation_eqI |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
500 |
and representation_basis = module.representation_basis |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
501 |
and representation_zero = module.representation_zero |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
502 |
and representation_diff = module.representation_diff |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
503 |
and representation_neg = module.representation_neg |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
504 |
and representation_add = module.representation_add |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
505 |
and representation_sum = module.representation_sum |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
506 |
and representation_scale = module.representation_scale |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
507 |
and representation_extend = module.representation_extend |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
508 |
end |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
509 |
*) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
510 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
511 |
end |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
512 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
513 |
lemmas_with [cancel_type_definition, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
514 |
OF S_ne, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
515 |
folded subset_iff', |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
516 |
simplified pred_fun_def, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
517 |
simplified\<comment>\<open>too much?\<close>]: |
|
68524
f5ca4c2157a5
avoid duplicate facts, the "trick" was copied without deeper motivation
immler
parents:
68522
diff
changeset
|
518 |
scale_left_commute = lt_scale_left_commute |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
519 |
and scale_zero_left = lt_scale_zero_left |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
520 |
and scale_minus_left = lt_scale_minus_left |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
521 |
and scale_left_diff_distrib = lt_scale_left_diff_distrib |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
522 |
and scale_sum_left = lt_scale_sum_left |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
523 |
and scale_zero_right = lt_scale_zero_right |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
524 |
and scale_minus_right = lt_scale_minus_right |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
525 |
and scale_right_diff_distrib = lt_scale_right_diff_distrib |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
526 |
and scale_sum_right = lt_scale_sum_right |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
527 |
and sum_constant_scale = lt_sum_constant_scale |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
528 |
and subspace_def = lt_subspace_def |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
529 |
and subspaceI = lt_subspaceI |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
530 |
and subspace_single_0 = lt_subspace_single_0 |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
531 |
and subspace_0 = lt_subspace_0 |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
532 |
and subspace_add = lt_subspace_add |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
533 |
and subspace_scale = lt_subspace_scale |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
534 |
and subspace_neg = lt_subspace_neg |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
535 |
and subspace_diff = lt_subspace_diff |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
536 |
and subspace_sum = lt_subspace_sum |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
537 |
and subspace_inter = lt_subspace_inter |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
538 |
and span_explicit = lt_span_explicit |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
539 |
and span_explicit' = lt_span_explicit' |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
540 |
and span_finite = lt_span_finite |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
541 |
and span_induct_alt[consumes 1, case_names base step, induct set : span] = lt_span_induct_alt |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
542 |
and span_mono = lt_span_mono |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
543 |
and span_base = lt_span_base |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
544 |
and span_superset = lt_span_superset |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
545 |
and span_zero = lt_span_zero |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
546 |
and span_add = lt_span_add |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
547 |
and span_scale = lt_span_scale |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
548 |
and subspace_span = lt_subspace_span |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
549 |
and span_neg = lt_span_neg |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
550 |
and span_diff = lt_span_diff |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
551 |
and span_sum = lt_span_sum |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
552 |
and span_minimal = lt_span_minimal |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
553 |
and span_unique = lt_span_unique |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
554 |
and span_subspace_induct[consumes 2] = lt_span_subspace_induct |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
555 |
and span_induct[consumes 1, case_names base step, induct set : span] = lt_span_induct |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
556 |
and span_empty = lt_span_empty |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
557 |
and span_subspace = lt_span_subspace |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
558 |
and span_span = lt_span_span |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
559 |
and span_add_eq = lt_span_add_eq |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
560 |
and span_add_eq2 = lt_span_add_eq2 |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
561 |
and span_singleton = lt_span_singleton |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
562 |
and span_Un = lt_span_Un |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
563 |
and span_insert = lt_span_insert |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
564 |
and span_breakdown = lt_span_breakdown |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
565 |
and span_breakdown_eq = lt_span_breakdown_eq |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
566 |
and span_clauses = lt_span_clauses |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
567 |
and span_eq_iff = lt_span_eq_iff |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
568 |
and span_eq = lt_span_eq |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
569 |
and eq_span_insert_eq = lt_eq_span_insert_eq |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
570 |
and dependent_explicit = lt_dependent_explicit |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
571 |
and dependent_mono = lt_dependent_mono |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
572 |
and independent_mono = lt_independent_mono |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
573 |
and dependent_zero = lt_dependent_zero |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
574 |
and independent_empty = lt_independent_empty |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
575 |
and independent_explicit_module = lt_independent_explicit_module |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
576 |
and independentD = lt_independentD |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
577 |
and independent_Union_directed = lt_independent_Union_directed |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
578 |
and dependent_finite = lt_dependent_finite |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
579 |
and independentD_alt = lt_independentD_alt |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
580 |
and independentD_unique = lt_independentD_unique |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
581 |
and spanning_subset_independent = lt_spanning_subset_independent |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
582 |
and module_hom_scale_self = lt_module_hom_scale_self |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
583 |
and module_hom_scale_left = lt_module_hom_scale_left |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
584 |
and module_hom_id = lt_module_hom_id |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
585 |
and module_hom_ident = lt_module_hom_ident |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
586 |
and module_hom_uminus = lt_module_hom_uminus |
| 68525 | 587 |
and subspace_UNIV = lt_subspace_UNIV |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
588 |
end |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
589 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
590 |
subsubsection \<open>Vector Spaces\<close> |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
591 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
592 |
context vector_space_on begin |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
593 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
594 |
context includes lifting_syntax assumes "\<exists>(Rep::'s \<Rightarrow> 'b) (Abs::'b \<Rightarrow> 's). type_definition Rep Abs S" begin |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
595 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
596 |
interpretation local_typedef_vector_space_on S scale "TYPE('s)" by unfold_locales fact
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
597 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
598 |
lemmas_with [var_simplified explicit_ab_group_add, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
599 |
unoverload_type 'd, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
600 |
OF type.ab_group_add_axioms type_vector_space_on_with, |
| 68526 | 601 |
folded dim_S_def, |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
602 |
untransferred, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
603 |
var_simplified implicit_ab_group_add]: |
| 68525 | 604 |
lt_linear_id = vector_space.linear_id |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
605 |
and lt_linear_ident = vector_space.linear_ident |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
606 |
and lt_linear_scale_self = vector_space.linear_scale_self |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
607 |
and lt_linear_scale_left = vector_space.linear_scale_left |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
608 |
and lt_linear_uminus = vector_space.linear_uminus |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
609 |
and lt_linear_imp_scale["consumes" - 1, "case_names" "1"] = vector_space.linear_imp_scale |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
610 |
and lt_scale_eq_0_iff = vector_space.scale_eq_0_iff |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
611 |
and lt_scale_left_imp_eq = vector_space.scale_left_imp_eq |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
612 |
and lt_scale_right_imp_eq = vector_space.scale_right_imp_eq |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
613 |
and lt_scale_cancel_left = vector_space.scale_cancel_left |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
614 |
and lt_scale_cancel_right = vector_space.scale_cancel_right |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
615 |
and lt_injective_scale = vector_space.injective_scale |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
616 |
and lt_dependent_def = vector_space.dependent_def |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
617 |
and lt_dependent_single = vector_space.dependent_single |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
618 |
and lt_in_span_insert = vector_space.in_span_insert |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
619 |
and lt_dependent_insertD = vector_space.dependent_insertD |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
620 |
and lt_independent_insertI = vector_space.independent_insertI |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
621 |
and lt_independent_insert = vector_space.independent_insert |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
622 |
and lt_maximal_independent_subset_extend["consumes" - 1, "case_names" "1"] = vector_space.maximal_independent_subset_extend |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
623 |
and lt_maximal_independent_subset["consumes" - 1, "case_names" "1"] = vector_space.maximal_independent_subset |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
624 |
and lt_in_span_delete = vector_space.in_span_delete |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
625 |
and lt_span_redundant = vector_space.span_redundant |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
626 |
and lt_span_trans = vector_space.span_trans |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
627 |
and lt_span_insert_0 = vector_space.span_insert_0 |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
628 |
and lt_span_delete_0 = vector_space.span_delete_0 |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
629 |
and lt_span_image_scale = vector_space.span_image_scale |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
630 |
and lt_exchange_lemma = vector_space.exchange_lemma |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
631 |
and lt_independent_span_bound = vector_space.independent_span_bound |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
632 |
and lt_independent_explicit_finite_subsets = vector_space.independent_explicit_finite_subsets |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
633 |
and lt_independent_if_scalars_zero = vector_space.independent_if_scalars_zero |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
634 |
and lt_subspace_sums = vector_space.subspace_sums |
| 68526 | 635 |
and lt_dim_unique = vector_space.dim_unique |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
636 |
and lt_dim_eq_card = vector_space.dim_eq_card |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
637 |
and lt_basis_card_eq_dim = vector_space.basis_card_eq_dim |
| 68526 | 638 |
and lt_basis_exists = vector_space.basis_exists |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
639 |
and lt_dim_eq_card_independent = vector_space.dim_eq_card_independent |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
640 |
and lt_dim_span = vector_space.dim_span |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
641 |
and lt_dim_span_eq_card_independent = vector_space.dim_span_eq_card_independent |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
642 |
and lt_dim_le_card = vector_space.dim_le_card |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
643 |
and lt_span_eq_dim = vector_space.span_eq_dim |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
644 |
and lt_dim_le_card' = vector_space.dim_le_card' |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
645 |
and lt_span_card_ge_dim = vector_space.span_card_ge_dim |
| 68526 | 646 |
and lt_dim_with = vector_space.dim_with |
| 69295 | 647 |
(* should work but don't:v |
648 |
||
| 68526 | 649 |
and lt_bij_if_span_eq_span_bases = vector_space.bij_if_span_eq_span_bases |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
650 |
*) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
651 |
(* not expected to work: |
| 68526 | 652 |
and lt_dim_def = vector_space.dim_def |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
653 |
and lt_extend_basis_superset = vector_space.extend_basis_superset |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
654 |
and lt_independent_extend_basis = vector_space.independent_extend_basis |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
655 |
and lt_span_extend_basis = vector_space.span_extend_basis |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
656 |
*) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
657 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
658 |
end |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
659 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
660 |
lemmas_with [cancel_type_definition, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
661 |
OF S_ne, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
662 |
folded subset_iff', |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
663 |
simplified pred_fun_def, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
664 |
simplified\<comment>\<open>too much?\<close>]: |
| 68525 | 665 |
linear_id = lt_linear_id |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
666 |
and linear_ident = lt_linear_ident |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
667 |
and linear_scale_self = lt_linear_scale_self |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
668 |
and linear_scale_left = lt_linear_scale_left |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
669 |
and linear_uminus = lt_linear_uminus |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
670 |
and linear_imp_scale["consumes" - 1, "case_names" "1"] = lt_linear_imp_scale |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
671 |
and scale_eq_0_iff = lt_scale_eq_0_iff |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
672 |
and scale_left_imp_eq = lt_scale_left_imp_eq |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
673 |
and scale_right_imp_eq = lt_scale_right_imp_eq |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
674 |
and scale_cancel_left = lt_scale_cancel_left |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
675 |
and scale_cancel_right = lt_scale_cancel_right |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
676 |
and dependent_def = lt_dependent_def |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
677 |
and dependent_single = lt_dependent_single |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
678 |
and in_span_insert = lt_in_span_insert |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
679 |
and dependent_insertD = lt_dependent_insertD |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
680 |
and independent_insertI = lt_independent_insertI |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
681 |
and independent_insert = lt_independent_insert |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
682 |
and maximal_independent_subset_extend["consumes" - 1, "case_names" "1"] = lt_maximal_independent_subset_extend |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
683 |
and maximal_independent_subset["consumes" - 1, "case_names" "1"] = lt_maximal_independent_subset |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
684 |
and in_span_delete = lt_in_span_delete |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
685 |
and span_redundant = lt_span_redundant |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
686 |
and span_trans = lt_span_trans |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
687 |
and span_insert_0 = lt_span_insert_0 |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
688 |
and span_delete_0 = lt_span_delete_0 |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
689 |
and span_image_scale = lt_span_image_scale |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
690 |
and exchange_lemma = lt_exchange_lemma |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
691 |
and independent_span_bound = lt_independent_span_bound |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
692 |
and independent_explicit_finite_subsets = lt_independent_explicit_finite_subsets |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
693 |
and independent_if_scalars_zero = lt_independent_if_scalars_zero |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
694 |
and subspace_sums = lt_subspace_sums |
| 68526 | 695 |
and dim_unique = lt_dim_unique |
696 |
and dim_eq_card = lt_dim_eq_card |
|
697 |
and basis_card_eq_dim = lt_basis_card_eq_dim |
|
698 |
and basis_exists["consumes" - 1, "case_names" "1"] = lt_basis_exists |
|
699 |
and dim_eq_card_independent = lt_dim_eq_card_independent |
|
700 |
and dim_span = lt_dim_span |
|
701 |
and dim_span_eq_card_independent = lt_dim_span_eq_card_independent |
|
702 |
and dim_le_card = lt_dim_le_card |
|
703 |
and span_eq_dim = lt_span_eq_dim |
|
704 |
and dim_le_card' = lt_dim_le_card' |
|
705 |
and span_card_ge_dim = lt_span_card_ge_dim |
|
706 |
and dim_with = lt_dim_with |
|
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
707 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
708 |
end |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
709 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
710 |
subsubsection \<open>Finite Dimensional Vector Spaces\<close> |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
711 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
712 |
context finite_dimensional_vector_space_on begin |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
713 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
714 |
context includes lifting_syntax assumes "\<exists>(Rep::'s \<Rightarrow> 'a) (Abs::'a \<Rightarrow> 's). type_definition Rep Abs S" begin |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
715 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
716 |
interpretation local_typedef_finite_dimensional_vector_space_on S scale basis "TYPE('s)" by unfold_locales fact
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
717 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
718 |
lemmas_with [var_simplified explicit_ab_group_add, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
719 |
unoverload_type 'd, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
720 |
OF type.ab_group_add_axioms type_finite_dimensional_vector_space_on_with, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
721 |
folded dim_S_def, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
722 |
untransferred, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
723 |
var_simplified implicit_ab_group_add]: |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
724 |
lt_finiteI_independent = finite_dimensional_vector_space.finiteI_independent |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
725 |
and lt_dim_empty = finite_dimensional_vector_space.dim_empty |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
726 |
and lt_dim_insert = finite_dimensional_vector_space.dim_insert |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
727 |
and lt_dim_singleton = finite_dimensional_vector_space.dim_singleton |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
728 |
and lt_choose_subspace_of_subspace["consumes" - 1, "case_names" "1"] = finite_dimensional_vector_space.choose_subspace_of_subspace |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
729 |
and lt_basis_subspace_exists["consumes" - 1, "case_names" "1"] = finite_dimensional_vector_space.basis_subspace_exists |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
730 |
and lt_dim_mono = finite_dimensional_vector_space.dim_mono |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
731 |
and lt_dim_subset = finite_dimensional_vector_space.dim_subset |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
732 |
and lt_dim_eq_0 = finite_dimensional_vector_space.dim_eq_0 |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
733 |
and lt_dim_UNIV = finite_dimensional_vector_space.dim_UNIV |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
734 |
and lt_independent_card_le_dim = finite_dimensional_vector_space.independent_card_le_dim |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
735 |
and lt_card_ge_dim_independent = finite_dimensional_vector_space.card_ge_dim_independent |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
736 |
and lt_card_le_dim_spanning = finite_dimensional_vector_space.card_le_dim_spanning |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
737 |
and lt_card_eq_dim = finite_dimensional_vector_space.card_eq_dim |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
738 |
and lt_subspace_dim_equal = finite_dimensional_vector_space.subspace_dim_equal |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
739 |
and lt_dim_eq_span = finite_dimensional_vector_space.dim_eq_span |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
740 |
and lt_dim_psubset = finite_dimensional_vector_space.dim_psubset |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
741 |
and lt_indep_card_eq_dim_span = finite_dimensional_vector_space.indep_card_eq_dim_span |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
742 |
and lt_independent_bound_general = finite_dimensional_vector_space.independent_bound_general |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
743 |
and lt_independent_explicit = finite_dimensional_vector_space.independent_explicit |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
744 |
and lt_dim_sums_Int = finite_dimensional_vector_space.dim_sums_Int |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
745 |
and lt_dependent_biggerset_general = finite_dimensional_vector_space.dependent_biggerset_general |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
746 |
and lt_subset_le_dim = finite_dimensional_vector_space.subset_le_dim |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
747 |
and lt_linear_inj_imp_surj = finite_dimensional_vector_space.linear_inj_imp_surj |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
748 |
and lt_linear_surj_imp_inj = finite_dimensional_vector_space.linear_surj_imp_inj |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
749 |
and lt_linear_inverse_left = finite_dimensional_vector_space.linear_inverse_left |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
750 |
and lt_left_inverse_linear = finite_dimensional_vector_space.left_inverse_linear |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
751 |
and lt_right_inverse_linear = finite_dimensional_vector_space.right_inverse_linear |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
752 |
(* not expected to work: |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
753 |
lt_dimension_def = finite_dimensional_vector_space.dimension_def |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
754 |
and lt_dim_subset_UNIV = finite_dimensional_vector_space.dim_subset_UNIV |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
755 |
and lt_dim_eq_full = finite_dimensional_vector_space.dim_eq_full |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
756 |
and lt_inj_linear_imp_inv_linear = finite_dimensional_vector_space.inj_linear_imp_inv_linear |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
757 |
*) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
758 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
759 |
end |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
760 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
761 |
lemmas_with [cancel_type_definition, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
762 |
OF S_ne, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
763 |
folded subset_iff', |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
764 |
simplified pred_fun_def, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
765 |
simplified\<comment>\<open>too much?\<close>]: |
| 68525 | 766 |
finiteI_independent = lt_finiteI_independent |
767 |
and dim_empty = lt_dim_empty |
|
768 |
and dim_insert = lt_dim_insert |
|
769 |
and dim_singleton = lt_dim_singleton |
|
770 |
and choose_subspace_of_subspace["consumes" - 1, "case_names" "1"] = lt_choose_subspace_of_subspace |
|
771 |
and basis_subspace_exists["consumes" - 1, "case_names" "1"] = lt_basis_subspace_exists |
|
772 |
and dim_mono = lt_dim_mono |
|
773 |
and dim_subset = lt_dim_subset |
|
774 |
and dim_eq_0 = lt_dim_eq_0 |
|
775 |
and dim_UNIV = lt_dim_UNIV |
|
776 |
and independent_card_le_dim = lt_independent_card_le_dim |
|
777 |
and card_ge_dim_independent = lt_card_ge_dim_independent |
|
778 |
and card_le_dim_spanning = lt_card_le_dim_spanning |
|
779 |
and card_eq_dim = lt_card_eq_dim |
|
780 |
and subspace_dim_equal = lt_subspace_dim_equal |
|
781 |
and dim_eq_span = lt_dim_eq_span |
|
782 |
and dim_psubset = lt_dim_psubset |
|
783 |
and indep_card_eq_dim_span = lt_indep_card_eq_dim_span |
|
784 |
and independent_bound_general = lt_independent_bound_general |
|
785 |
and independent_explicit = lt_independent_explicit |
|
786 |
and dim_sums_Int = lt_dim_sums_Int |
|
787 |
and dependent_biggerset_general = lt_dependent_biggerset_general |
|
788 |
and subset_le_dim = lt_subset_le_dim |
|
789 |
and linear_inj_imp_surj = lt_linear_inj_imp_surj |
|
790 |
and linear_surj_imp_inj = lt_linear_surj_imp_inj |
|
791 |
and linear_inverse_left = lt_linear_inverse_left |
|
792 |
and left_inverse_linear = lt_left_inverse_linear |
|
793 |
and right_inverse_linear = lt_right_inverse_linear |
|
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
794 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
795 |
end |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
796 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
797 |
context module_pair_on begin |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
798 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
799 |
context includes lifting_syntax |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
800 |
assumes |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
801 |
"\<exists>(Rep::'s \<Rightarrow> 'b) (Abs::'b \<Rightarrow> 's). type_definition Rep Abs S1" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
802 |
"\<exists>(Rep::'t \<Rightarrow> 'c) (Abs::'c \<Rightarrow> 't). type_definition Rep Abs S2" begin |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
803 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
804 |
interpretation local_typedef_module_pair S1 scale1 "TYPE('s)" S2 scale2 "TYPE('t)" by unfold_locales fact+
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
805 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
806 |
lemmas_with [var_simplified explicit_ab_group_add, |
| 69688 | 807 |
unoverload_type 'e 'f, |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
808 |
OF lt2.type.ab_group_add_axioms lt1.type.ab_group_add_axioms type_module_pair_on_with, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
809 |
untransferred, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
810 |
var_simplified implicit_ab_group_add]: |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
811 |
lt_module_hom_zero = module_pair.module_hom_zero |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
812 |
and lt_module_hom_add = module_pair.module_hom_add |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
813 |
and lt_module_hom_sub = module_pair.module_hom_sub |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
814 |
and lt_module_hom_neg = module_pair.module_hom_neg |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
815 |
and lt_module_hom_scale = module_pair.module_hom_scale |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
816 |
and lt_module_hom_compose_scale = module_pair.module_hom_compose_scale |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
817 |
and lt_module_hom_sum = module_pair.module_hom_sum |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
818 |
and lt_module_hom_eq_on_span = module_pair.module_hom_eq_on_span |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
819 |
(* should work, but doesnt |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
820 |
and lt_bij_module_hom_imp_inv_module_hom = module_pair.bij_module_hom_imp_inv_module_hom[of scale1 scale2] |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
821 |
*) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
822 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
823 |
end |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
824 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
825 |
lemmas_with [cancel_type_definition, OF m1.S_ne, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
826 |
cancel_type_definition, OF m2.S_ne, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
827 |
folded subset_iff' top_set_def, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
828 |
simplified pred_fun_def, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
829 |
simplified\<comment>\<open>too much?\<close>]: |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
830 |
module_hom_zero = lt_module_hom_zero |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
831 |
and module_hom_add = lt_module_hom_add |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
832 |
and module_hom_sub = lt_module_hom_sub |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
833 |
and module_hom_neg = lt_module_hom_neg |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
834 |
and module_hom_scale = lt_module_hom_scale |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
835 |
and module_hom_compose_scale = lt_module_hom_compose_scale |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
836 |
and module_hom_sum = lt_module_hom_sum |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
837 |
and module_hom_eq_on_span = lt_module_hom_eq_on_span |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
838 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
839 |
end |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
840 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
841 |
context vector_space_pair_on begin |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
842 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
843 |
context includes lifting_syntax |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
844 |
notes [transfer_rule del] = Collect_transfer |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
845 |
assumes |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
846 |
"\<exists>(Rep::'s \<Rightarrow> 'b) (Abs::'b \<Rightarrow> 's). type_definition Rep Abs S1" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
847 |
"\<exists>(Rep::'t \<Rightarrow> 'c) (Abs::'c \<Rightarrow> 't). type_definition Rep Abs S2" begin |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
848 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
849 |
interpretation local_typedef_vector_space_pair S1 scale1 "TYPE('s)" S2 scale2 "TYPE('t)" by unfold_locales fact+
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
850 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
851 |
lemmas_with [var_simplified explicit_ab_group_add, |
| 69688 | 852 |
unoverload_type 'e 'f, |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
853 |
OF lt2.type.ab_group_add_axioms lt1.type.ab_group_add_axioms type_vector_space_pair_on_with, |
|
68620
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
854 |
folded lt1.dim_S_def lt2.dim_S_def, |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
855 |
untransferred, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
856 |
var_simplified implicit_ab_group_add]: |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
857 |
lt_linear_0 = vector_space_pair.linear_0 |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
858 |
and lt_linear_add = vector_space_pair.linear_add |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
859 |
and lt_linear_scale = vector_space_pair.linear_scale |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
860 |
and lt_linear_neg = vector_space_pair.linear_neg |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
861 |
and lt_linear_diff = vector_space_pair.linear_diff |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
862 |
and lt_linear_sum = vector_space_pair.linear_sum |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
863 |
and lt_linear_inj_on_iff_eq_0 = vector_space_pair.linear_inj_on_iff_eq_0 |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
864 |
and lt_linear_inj_iff_eq_0 = vector_space_pair.linear_inj_iff_eq_0 |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
865 |
and lt_linear_subspace_image = vector_space_pair.linear_subspace_image |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
866 |
and lt_linear_subspace_vimage = vector_space_pair.linear_subspace_vimage |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
867 |
and lt_linear_subspace_kernel = vector_space_pair.linear_subspace_kernel |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
868 |
and lt_linear_span_image = vector_space_pair.linear_span_image |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
869 |
and lt_linear_dependent_inj_imageD = vector_space_pair.linear_dependent_inj_imageD |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
870 |
and lt_linear_eq_0_on_span = vector_space_pair.linear_eq_0_on_span |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
871 |
and lt_linear_independent_injective_image = vector_space_pair.linear_independent_injective_image |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
872 |
and lt_linear_inj_on_span_independent_image = vector_space_pair.linear_inj_on_span_independent_image |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
873 |
and lt_linear_inj_on_span_iff_independent_image = vector_space_pair.linear_inj_on_span_iff_independent_image |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
874 |
and lt_linear_subspace_linear_preimage = vector_space_pair.linear_subspace_linear_preimage |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
875 |
and lt_linear_spans_image = vector_space_pair.linear_spans_image |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
876 |
and lt_linear_spanning_surjective_image = vector_space_pair.linear_spanning_surjective_image |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
877 |
and lt_linear_eq_on_span = vector_space_pair.linear_eq_on_span |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
878 |
and lt_linear_compose_scale_right = vector_space_pair.linear_compose_scale_right |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
879 |
and lt_linear_compose_add = vector_space_pair.linear_compose_add |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
880 |
and lt_linear_zero = vector_space_pair.linear_zero |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
881 |
and lt_linear_compose_sub = vector_space_pair.linear_compose_sub |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
882 |
and lt_linear_compose_neg = vector_space_pair.linear_compose_neg |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
883 |
and lt_linear_compose_scale = vector_space_pair.linear_compose_scale |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
884 |
and lt_linear_indep_image_lemma = vector_space_pair.linear_indep_image_lemma |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
885 |
and lt_linear_eq_on = vector_space_pair.linear_eq_on |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
886 |
and lt_linear_compose_sum = vector_space_pair.linear_compose_sum |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
887 |
and lt_linear_independent_extend_subspace = vector_space_pair.linear_independent_extend_subspace |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
888 |
and lt_linear_independent_extend = vector_space_pair.linear_independent_extend |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
889 |
and lt_linear_exists_left_inverse_on = vector_space_pair.linear_exists_left_inverse_on |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
890 |
and lt_linear_exists_right_inverse_on = vector_space_pair.linear_exists_right_inverse_on |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
891 |
and lt_linear_inj_on_left_inverse = vector_space_pair.linear_inj_on_left_inverse |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
892 |
and lt_linear_injective_left_inverse = vector_space_pair.linear_injective_left_inverse |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
893 |
and lt_linear_surj_right_inverse = vector_space_pair.linear_surj_right_inverse |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
894 |
and lt_linear_surjective_right_inverse = vector_space_pair.linear_surjective_right_inverse |
|
68620
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
895 |
and lt_finite_basis_to_basis_subspace_isomorphism = vector_space_pair.finite_basis_to_basis_subspace_isomorphism |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
896 |
(* should work, but doesnt |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
897 |
*) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
898 |
(* not expected to work: |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
899 |
lt_construct_def = vector_space_pair.construct_def |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
900 |
lt_construct_cong = vector_space_pair.construct_cong |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
901 |
lt_linear_construct = vector_space_pair.linear_construct |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
902 |
lt_construct_basis = vector_space_pair.construct_basis |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
903 |
lt_construct_outside = vector_space_pair.construct_outside |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
904 |
lt_construct_add = vector_space_pair.construct_add |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
905 |
lt_construct_scale = vector_space_pair.construct_scale |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
906 |
lt_construct_in_span = vector_space_pair.construct_in_span |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
907 |
lt_in_span_in_range_construct = vector_space_pair.in_span_in_range_construct |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
908 |
lt_range_construct_eq_span = vector_space_pair.range_construct_eq_span |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
909 |
*) |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
910 |
end |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
911 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
912 |
lemmas_with [cancel_type_definition, OF m1.S_ne, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
913 |
cancel_type_definition, OF m2.S_ne, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
914 |
folded subset_iff' top_set_def, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
915 |
simplified pred_fun_def, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
916 |
simplified\<comment>\<open>too much?\<close>]: |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
917 |
linear_0 = lt_linear_0 |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
918 |
and linear_add = lt_linear_add |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
919 |
and linear_scale = lt_linear_scale |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
920 |
and linear_neg = lt_linear_neg |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
921 |
and linear_diff = lt_linear_diff |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
922 |
and linear_sum = lt_linear_sum |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
923 |
and linear_inj_on_iff_eq_0 = lt_linear_inj_on_iff_eq_0 |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
924 |
and linear_inj_iff_eq_0 = lt_linear_inj_iff_eq_0 |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
925 |
and linear_subspace_image = lt_linear_subspace_image |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
926 |
and linear_subspace_vimage = lt_linear_subspace_vimage |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
927 |
and linear_subspace_kernel = lt_linear_subspace_kernel |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
928 |
and linear_span_image = lt_linear_span_image |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
929 |
and linear_dependent_inj_imageD = lt_linear_dependent_inj_imageD |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
930 |
and linear_eq_0_on_span = lt_linear_eq_0_on_span |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
931 |
and linear_independent_injective_image = lt_linear_independent_injective_image |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
932 |
and linear_inj_on_span_independent_image = lt_linear_inj_on_span_independent_image |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
933 |
and linear_inj_on_span_iff_independent_image = lt_linear_inj_on_span_iff_independent_image |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
934 |
and linear_subspace_linear_preimage = lt_linear_subspace_linear_preimage |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
935 |
and linear_spans_image = lt_linear_spans_image |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
936 |
and linear_spanning_surjective_image = lt_linear_spanning_surjective_image |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
937 |
and linear_eq_on_span = lt_linear_eq_on_span |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
938 |
and linear_compose_scale_right = lt_linear_compose_scale_right |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
939 |
and linear_compose_add = lt_linear_compose_add |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
940 |
and linear_zero = lt_linear_zero |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
941 |
and linear_compose_sub = lt_linear_compose_sub |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
942 |
and linear_compose_neg = lt_linear_compose_neg |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
943 |
and linear_compose_scale = lt_linear_compose_scale |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
944 |
and linear_indep_image_lemma = lt_linear_indep_image_lemma |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
945 |
and linear_eq_on = lt_linear_eq_on |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
946 |
and linear_compose_sum = lt_linear_compose_sum |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
947 |
and linear_independent_extend_subspace = lt_linear_independent_extend_subspace |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
948 |
and linear_independent_extend = lt_linear_independent_extend |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
949 |
and linear_exists_left_inverse_on = lt_linear_exists_left_inverse_on |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
950 |
and linear_exists_right_inverse_on = lt_linear_exists_right_inverse_on |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
951 |
and linear_inj_on_left_inverse = lt_linear_inj_on_left_inverse |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
952 |
and linear_injective_left_inverse = lt_linear_injective_left_inverse |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
953 |
and linear_surj_right_inverse = lt_linear_surj_right_inverse |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
954 |
and linear_surjective_right_inverse = lt_linear_surjective_right_inverse |
|
68620
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
955 |
and finite_basis_to_basis_subspace_isomorphism = lt_finite_basis_to_basis_subspace_isomorphism |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
956 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
957 |
end |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
958 |
|
|
68620
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
959 |
context finite_dimensional_vector_space_pair_1_on begin |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
960 |
|
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
961 |
context includes lifting_syntax |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
962 |
notes [transfer_rule del] = Collect_transfer |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
963 |
assumes |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
964 |
"\<exists>(Rep::'s \<Rightarrow> 'b) (Abs::'b \<Rightarrow> 's). type_definition Rep Abs S1" |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
965 |
"\<exists>(Rep::'t \<Rightarrow> 'c) (Abs::'c \<Rightarrow> 't). type_definition Rep Abs S2" begin |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
966 |
|
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
967 |
interpretation local_typedef_finite_dimensional_vector_space_pair_1 S1 scale1 Basis1 "TYPE('s)" S2 scale2 "TYPE('t)" by unfold_locales fact+
|
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
968 |
|
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
969 |
lemmas_with [var_simplified explicit_ab_group_add, |
| 69688 | 970 |
unoverload_type 'e 'f, |
|
68620
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
971 |
OF lt2.type.ab_group_add_axioms lt1.type.ab_group_add_axioms type_finite_dimensional_vector_space_pair_1_on_with, |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
972 |
folded lt1.dim_S_def lt2.dim_S_def, |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
973 |
untransferred, |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
974 |
var_simplified implicit_ab_group_add]: |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
975 |
lt_dim_image_eq = finite_dimensional_vector_space_pair_1.dim_image_eq |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
976 |
and lt_dim_image_le = finite_dimensional_vector_space_pair_1.dim_image_le |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
977 |
|
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
978 |
end |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
979 |
|
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
980 |
lemmas_with [cancel_type_definition, OF vs1.S_ne, |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
981 |
cancel_type_definition, OF vs2.S_ne, |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
982 |
folded subset_iff' top_set_def, |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
983 |
simplified pred_fun_def, |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
984 |
simplified\<comment>\<open>too much?\<close>]: |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
985 |
dim_image_eq = lt_dim_image_eq |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
986 |
and dim_image_le = lt_dim_image_le |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
987 |
|
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
988 |
end |
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
989 |
|
|
707437105595
relaxed assumptions for dim_image_eq and dim_image_le
immler
parents:
68526
diff
changeset
|
990 |
|
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
991 |
context finite_dimensional_vector_space_pair_on begin |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
992 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
993 |
context includes lifting_syntax |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
994 |
notes [transfer_rule del] = Collect_transfer |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
995 |
assumes |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
996 |
"\<exists>(Rep::'s \<Rightarrow> 'b) (Abs::'b \<Rightarrow> 's). type_definition Rep Abs S1" |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
997 |
"\<exists>(Rep::'t \<Rightarrow> 'c) (Abs::'c \<Rightarrow> 't). type_definition Rep Abs S2" begin |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
998 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
999 |
interpretation local_typedef_finite_dimensional_vector_space_pair S1 scale1 Basis1 "TYPE('s)" S2 scale2 Basis2 "TYPE('t)" by unfold_locales fact+
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
1000 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
1001 |
lemmas_with [var_simplified explicit_ab_group_add, |
| 69688 | 1002 |
unoverload_type 'e 'f, |
|
68522
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
1003 |
OF lt2.type.ab_group_add_axioms lt1.type.ab_group_add_axioms type_finite_dimensional_vector_space_pair_on_with, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
1004 |
folded lt1.dim_S_def lt2.dim_S_def, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
1005 |
untransferred, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
1006 |
var_simplified implicit_ab_group_add]: |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
1007 |
lt_linear_surjective_imp_injective = finite_dimensional_vector_space_pair.linear_surjective_imp_injective |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
1008 |
and lt_linear_injective_imp_surjective = finite_dimensional_vector_space_pair.linear_injective_imp_surjective |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
1009 |
and lt_linear_injective_isomorphism = finite_dimensional_vector_space_pair.linear_injective_isomorphism |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
1010 |
and lt_linear_surjective_isomorphism = finite_dimensional_vector_space_pair.linear_surjective_isomorphism |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
1011 |
and lt_basis_to_basis_subspace_isomorphism = finite_dimensional_vector_space_pair.basis_to_basis_subspace_isomorphism |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
1012 |
and lt_subspace_isomorphism = finite_dimensional_vector_space_pair.subspace_isomorphism |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
1013 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
1014 |
end |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
1015 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
1016 |
lemmas_with [cancel_type_definition, OF vs1.S_ne, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
1017 |
cancel_type_definition, OF vs2.S_ne, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
1018 |
folded subset_iff' top_set_def, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
1019 |
simplified pred_fun_def, |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
1020 |
simplified\<comment>\<open>too much?\<close>]: |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
1021 |
linear_surjective_imp_injective = lt_linear_surjective_imp_injective |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
1022 |
and linear_injective_imp_surjective = lt_linear_injective_imp_surjective |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
1023 |
and linear_injective_isomorphism = lt_linear_injective_isomorphism |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
1024 |
and linear_surjective_isomorphism = lt_linear_surjective_isomorphism |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
1025 |
and basis_to_basis_subspace_isomorphism = lt_basis_to_basis_subspace_isomorphism |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
1026 |
and subspace_isomorphism = lt_subspace_isomorphism |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
1027 |
|
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
1028 |
end |
|
d9cbc1e8644d
example for Types_To_Sets: transfer from type-based linear algebra to subspaces
immler
parents:
diff
changeset
|
1029 |
|
| 69096 | 1030 |
end |