-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add a description of a graded algebra. #5
Conversation
/-- Chisholm 6a, ish. | ||
This says A = ⟨A}_r for r-vectors. | ||
Chisholm aditionally wants proof that A != ⟨A}_r for non-rvectors -/ | ||
lemma r_grade_of_coe {r : ℤ} (v : A r) : ⟨(to_fun v : G)⟩_r = v := begin |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I want to be able to write this
lemma r_grade_of_coe {r : ℤ} (v : A r) : ⟨(to_fun v : G)⟩_r = v := begin | |
lemma r_grade_of_coe {r : ℤ} (v : A r) : ⟨(v : G)⟩_r = v := begin |
or even
lemma r_grade_of_coe {r : ℤ} (v : A r) : ⟨(to_fun v : G)⟩_r = v := begin | |
lemma r_grade_of_coe {r : ℤ} (v : A r) : ⟨v : G⟩_r = v := begin |
but I don't know how to prove the former, and the latter isn't legal syntax.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Me too
end | ||
|
||
/-- Chisholm 6b -/ | ||
lemma grade_of_sum (r : ℤ) (a b : G) : (⟨a + b⟩_r : A r) = ⟨a⟩_r + ⟨b⟩_r := by simp |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would much rather write this
lemma grade_of_sum (r : ℤ) (a b : G) : (⟨a + b⟩_r : A r) = ⟨a⟩_r + ⟨b⟩_r := by simp | |
lemma grade_of_sum (r : ℤ) (a b : G) : ⟨a + b⟩_r = ⟨a⟩_r + ⟨b⟩_r := by simp |
but lean needs the type annotation for some reason.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you do this in the definition of notation?
|
||
/-- chisholm 6d. This is super awkward to express due to all the casting -/ | ||
lemma grade_grade (r s : ℤ) (a : G) : | ||
(to_fun (⟨ (to_fun (⟨a⟩_r : A r) : G) ⟩_s : A s) : G) = if r = s then to_fun (⟨a⟩_r : A r) else 0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ideally this would be:
(to_fun (⟨ (to_fun (⟨a⟩_r : A r) : G) ⟩_s : A s) : G) = if r = s then to_fun (⟨a⟩_r : A r) else 0 | |
⟨⟨a⟩_r⟩_s = if r = s then ⟨a⟩_r else 0 |
but lean isn't happy at all with that.
variables [graded_module A G] | ||
|
||
/-- convert from r-vectors to multi-vectors -/ | ||
instance has_coe (r : ℤ) : has_coe (A r) G := { coe := to_fun } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This coe
ends up being rather hard to work with in proofs
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Been there. Have you tried norm_cast?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Introducing a trivial rfl
lemma seemed to help.
No description provided.