Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6803785
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 26, 20262026-05-26T19:23:12+00:00 2026-05-26T19:23:12+00:00

I am having problems with rewriting using the setoid_rewrite tactic. In the following instance

  • 0

I am having problems with rewriting using the setoid_rewrite tactic. In the following instance declaration, I expect that setoid_rewrite fmapComp would rewrite fmap iso ∘ fmap inv to fmap (iso ∘ inv). However, Coq reports that “no progress was made” during rewriting:

Instance functorsPreserveIsomorphisms
 `{C : Cat o η} `{D : Cat u ρ}
   {a b : o} {φ : o → u} (F : Functor C D φ) (I : a ≅ b) : φ a ≅ φ b.
Proof.
  apply (Build_Isomorphism _ _ _ (φ a) (φ b) (fmap iso) (fmap inv)).

 o : Type
 η : o → o → Type
 C : Cat o η
 u : Type
 ρ : u → u → Type
 D : Cat u ρ
 a : o
 b : o
 φ : o → u
 F : Functor C D φ
 I : a ≅ b
 ============================
  fmap iso ∘ fmap inv ≡ id (φ a)

I don’t understand why setoid_rewrite fails. For reference, the same command works in other contexts using the same terms. For example, it rewrites either side of the following goal to the other:

Lemma worksotherwise
 `{C : Cat o η} `{D : Cat u ρ}
   {a b : o} {φ : o → u} (F : Functor C D φ) (I : a ≅ b) :
     fmap iso ∘ fmap inv ≡ fmap (iso ∘ inv)

 o : Type
 η : o → o → Type
 C : Cat o η
 u : Type
 ρ : u → u → Type
 D : Cat u ρ
 a : o
 b : o
 φ : o → u
 F : Functor C D φ
 I : a ≅ b
 ============================
  fmap iso ∘ fmap inv ≡ fmap (iso ∘ inv)

It’s unclear why setoid_rewrite works in the second case but not the first. For reference, ≡ is equiv and fmap is Proper. Other than that ≅, Functor and Cat are classes, I don’t see any other relevant facts. Also, setoid_replace works fine.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-26T19:23:13+00:00Added an answer on May 26, 2026 at 7:23 pm

    This is a shot in the dark without seeing the whole development, but sometimes, when you can’t see a difference, it means that there’s a difference in a part you don’t see. Namely, implicit arguments.

    For example, you might have an implicit argument somewhere that appears identically in two locations in the working proof attempt, and that appears in two distinct but interconvertible (or even merely equal) in the non-working proof attempt. Occasionally tactics require identical terms to fire up, whereas interconvertible terms would suffice with the same proof tree, and equal terms would suffice with judicious introduction of eq_refl. When you’re working with high-level tactics such as the setoid tactics, it can be difficult to understand what’s going on under the hood.

    Try comparing the situations under Set Printing Implicit or Set Printing All, or working with No Strict Implicit or No Implicit Arguments for a small part of the proof.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm having problems using textures that are larger than the OpenGL window or the
im having problems starting a codeigniter project, the problem is that when i do
I am having a few problems re-writing flat links using htaccess, I have two
Having problems with my ASP.NET MVC2 project. I'm using Fluent NHibernate as ORM, and
im having problems creating a function that must return the amount of goals of
Having problems deserializing some xml into an object in C#. The error that I
Having problems with a small awk script, Im trying to choose the newest of
Having problems iterating. Problem has to do with const correctness, I think. I assume
Im having problems displaying records to my view when passing viewdata to a user
Im having problems building a query with the linq to sql data query expression

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.