Skip to content
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 definition of blades, and prove the vectors are 1-blade and the scalars 0-blades #3

Merged
merged 1 commit into from
Jun 30, 2020

Conversation

eric-wieser
Copy link
Member

No description provided.

@eric-wieser eric-wieser requested a review from utensil June 27, 2020 11:31
theorem zero_is_orthogonal (a : G₁) : is_orthogonal 0 a := begin
unfold is_orthogonal,
unfold sym_prod_vec,
unfold prod_vec,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This could be simplified to dsimp I guess.

unfold is_orthogonal,
unfold sym_prod_vec,
unfold prod_vec,
simp
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I kind of like to use squeeze_simp to replace the output with simp only [rw_rule1, rw_rule2, ...] to stabilize the behavior.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
simp
simp only [add_zero, zero_mul, mul_zero, add_monoid_hom.map_zero],

Comment on lines +76 to +78
unfold is_orthogonal,
unfold sym_prod_vec,
unfold prod_vec,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
unfold is_orthogonal,
unfold sym_prod_vec,
unfold prod_vec,
dsimp only [is_orthogonal, sym_prod_vec, prod_vec],

Comment on lines +137 to +138
unfold vector.nil,
simp,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
unfold vector.nil,
simp,
simp only [vector.nil, vector.cons_tail, vector.cons_head, list.foldl],

| graded {n : ℕ} :
-- or a product of orthogonal vectors
(∃ (v : {l : vector G₁ (n + 1) // l.val.pairwise (λ a b, is_orthogonal a b ∧ a ≠ b)}),
b = list.foldl (λ (b : G) (a : G₁), fᵥ a * b) (fᵥ v.val.head) v.val.tail.val)
Copy link
Member

@utensil utensil Jun 27, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could do two things here:

  1. use https://github.com/leanprover-community/mathlib/blob/master/src/algebra/big_operators.lean instead of the foldl to make it look like math formula more
  2. have a lemma to do the unfold/simp stuff, so the actual proof can focus on the real goal

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Another approach would be to up-convert all the vectors to G and use list.prod. I suspect an explicit foldl might be easier to recourse over, but have little intuition there.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What I had in mind was to first prove GA is a vector space, and reuse the theorems there to prove the stuff about basis, generated, span etc. I still trying to figure out how to construct stuff based on theorems.

As for graded algebra, previously I found commutative differential graded algebras to be a good reference implementation. It seems that I don't really need the bases to define the grade operations.

@utensil utensil merged commit 59da409 into pygae:master Jun 30, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants