Frama-C Bug Tracking System - Frama-C
View Issue Details
0001630Frama-CPlug-in > wppublic2014-01-23 19:272015-03-17 22:17
jens 
correnson 
normalminoralways
closedfixed 
Frama-C Fluorine-20130601 
Frama-C Sodium 
0001630: Make identifiers in Coq proofs more similar to those from C code
When I want to proof an obligation for function foo(int* a, int n) then the Coq representation of the obligation uses the identifiers "a_0" and "n_0". In my opinion, the proofs would be easier to read if WP would generate the names "a" and "n". (I often use "remember a_0 as a" to achieve this, but it would be nicer if I did not have to do it manually.)
No tags attached.
Issue History
2014-01-23 19:27jensNew Issue
2014-01-23 19:27jensStatusnew => assigned
2014-01-23 19:27jensAssigned To => correnson
2014-02-05 13:13corrensonNote Added: 0004491
2014-02-05 13:15corrensonNote Added: 0004492
2014-02-05 13:15corrensonStatusassigned => acknowledged
2014-03-16 18:32jensNote Added: 0004971
2014-06-02 17:05corrensonNote Added: 0005189
2014-06-02 17:05corrensonStatusacknowledged => resolved
2014-06-02 17:05corrensonResolutionopen => fixed
2014-06-02 17:06corrensonNote Edited: 0005189View Revisions
2015-03-17 22:17signolesFixed in Version => Frama-C Sodium
2015-03-17 22:17signolesStatusresolved => closed

Notes
(0004491)
correnson   
2014-02-05 13:13   
This is difficult to implement in a safe way. We need to avoid name clashes, and we rely on patterns to do this. Hence, pattern "_" is reserved for local variables, whereas "" might clash with keywords, models and (unknown) user definitions.
(0004492)
correnson   
2014-02-05 13:15   
Feature wish postponed to a future release.
(0004971)
jens   
2014-03-16 18:32   
Could this be done at least for the names in logic declarations in ACSL? For example, the variable names of an axiom such as axiom CountUnion: \forall value_type *a, v, integer i, j, k; 0 <= i <= j <= k ==> Count(a, v, i ,k) == Count(a, v, i, j) + Count(a, v, j, k); looks like this on the Coq level Q_CountUnion : forall (i_0 j_0 k_0 v_0 : int) (Mint_0 : farray addr int) (a_0 : addr), 0 <= i_0 -> i_0 <= j_0 -> j_0 <= k_0 -> is_sint32 v_0 -> L_Count Mint_0 a_0 v_0 i_0 k_0 = L_Count Mint_0 a_0 v_0 i_0 j_0 + L_Count Mint_0 a_0 v_0 j_0 k_0 It would be nice, if the arguments would read i, j, k, v, and a on the Coq-level.
(0005189)
correnson   
2014-06-02 17:05   
(edited on: 2014-06-02 17:06)
Fix committed to master branch. Only for short names (1 letter) with index 0.