package coq-core
 sectionYPositions = computeSectionYPositions($el), 10)"
  x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
  >
  
  
  The Coq Proof Assistant -- Core Binaries and Tools
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
  
    
      coq-8.18.0.tar.gz
    
    
        
    
  
  
  
    
  
  
    
  
        md5=8d852367b54f095d9fbabd000304d450
    
    
  sha512=46922d5f2eb6802a148a52fd3e7f0be8370c93e7bc33cee05cf4a2044290845b10ccddbaa306f29c808e7c5019700763e37e45ff6deb507b874a4348010fed50
    
    
  doc/coq-core.pretyping/Reductionops/Stack/index.html
Module Reductionops.StackSource
Source
type member = - | App of app_node
- | Case of case_stk
- | Proj of Names.Projection.t
- | Fix of EConstr.fixpoint * t
- | Primitive of CPrimitives.t * Names.Constant.t * EConstr.EInstance.t * t * CPrimitives.args_red
fold2 f x sk1 sk2 folds f on any pair of term in (sk1,sk2).
append_app args sk pushes array of arguments args on sk
append_app_list args sk pushes list of arguments args on sk
if strip_app sk = (sk1,sk2), then sk = sk1 @ sk2 with sk1 purely applicative and sk2 does not start with an argument
decomp sk extracts the first argument of reversed stack sk is there is some
list_of_app_stack sk either returns Some sk turned into a list of arguments if sk is purely applicative and None otherwise
args_size sk returns the number of arguments available at the head of sk
zip sigma t sk
Source
val expand_case : 
  Environ.env ->
  Evd.evar_map ->
  case_stk ->
  Constr.case_info
  * EConstr.EInstance.t
  * EConstr.constr array
  * (EConstr.rel_context * EConstr.constr)
  * (EConstr.rel_context * EConstr.constr) array sectionYPositions = computeSectionYPositions($el), 10)"
  x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
  >