Изабель: проблема с setprod
Имеет ли место следующее равенство в Изабель:
setprod f (UNIV :: 'n∷finite set) = setprod (λx. x) (f ` (UNIV :: 'n∷finite set))
Если да, как я могу это доказать?
(* tested with Isabelle2013-2 *)
theory Notepad
imports
Main
"~~/src/HOL/Library/Polynomial"
begin
notepad
begin{
fix f :: "'n∷finite ⇒ ('a::comm_ring_1 poly)"
have "finite (UNIV :: 'n∷finite set)" by simp
from this have "setprod f (UNIV :: 'n∷finite set) = setprod (λx. x) (f ` (UNIV :: 'n∷finite set))"
sorry (* can this be proven ? *)
1 ответ
Решение
Лемма справедлива, только если вы добавите предположение inj f
основываясь на этом f
инъективно Тогда лемма следует из леммы библиотеки setprod_reindex_id
, который можно найти с помощью команды find_theorems setprod image
,
setprod_reindex_id [unfolded id_def]
дает обобщенную версию леммы, которую вы просили.