From: Julian Nagele <julian.nagele@uibk.ac.at>
Dear all,
recently, when using the multiset extension "mult" from
"~~/src/HOL/Library/Multiset", I noticed the following oddity:
The lemma
lemma one_step_implies_mult:
"trans r ⟹ J ≠ {#} ⟹ ∀k ∈ set_mset K. ∃j ∈ set_mset J. (k, j) ∈ r
⟹ (I + K, I + J) ∈ mult r"
requires transitivity of the underlying order, which I think is not
needed here. And indeed the proof of one_step_implies_mult is
using one_step_implies_mult_aux by blast
and one_step_implies_mult_aux, basically a object-level version
of one_step_implies_mult, reads
lemma one_step_implies_mult_aux:
"∀I J K. size J = n ∧ J ≠ {#} ∧ (∀k ∈ set_mset K. ∃j ∈ set_mset J. (k, j) ∈ r)
⟶ (I + K, I + J) ∈ mult r"
Is this intended?
Best,
Julian
From: Tobias Nipkow <nipkow@in.tum.de>
I have removed the superfluous assumption, thanks.
The AFP entry Decreasing-Diagrams also contains superfluous "trans r"
assumptions because it uses one_step_implies_mult. The proofs still work, but
the authors may want to update their theories anyway.
Tobias
smime.p7s
Last updated: Nov 21 2024 at 12:39 UTC